如何按照流中的值按字母顺序对键值数组进行排序?(Java)

wtlkbnrh  于 2023-04-10  发布在  Java
关注(0)|答案(1)|浏览(108)

我想学习更多关于比较器和流的知识,我想知道对一个带有键值的对象数组进行排序的最佳解决方案,按值的字母顺序排序。任何帮助都非常感谢!

Example Array:
[
   {key: "93743743", value: "Mary Smith"},
   {key: "6624c357", value: "Tom Spitz"},
   {key: "03453459", value: "John Doe"},
   {key: "24623145", value: "Ernie Ball"}
]

Expected Result:
[
   {key: "24623145", value: "Ernie Ball"}
   {key: "03453459", value: "John Doe"},
   {key: "93743743", value: "Mary Smith"},
   {key: "6624c357", value: "Tom Spitz"},

]

在流中使用它的确切语法有点麻烦(使用流来随后过滤并返回一个名称数组)。如果更容易,也可以过滤数组。

fhity93d

fhity93d1#

MyObject的数组定义如下:

record MyObject(String key, String value) {}

您可以使用Comparator.comparing和方法引用对其进行排序。

MyObject[] res = Arrays.stream(arr)
     .sorted(Comparator.comparing(MyObject::value)).toArray(MyObject[]::new);
// or your getter may be named as MyObject::getValue

相关问题