gpt4 book ai didi

java - 按第一个元素对字符串数组列表进行排序

转载 作者:行者123 更新时间:2023-12-02 09:04:24 25 4
gpt4 key购买 nike

我想按同一列表的每个数组元素中的第一个元素以相反的顺序对字符串数组列表进行排序,因此 2, 1, 0

这是我迄今为止尝试过的:

List<String[]> array = new ArrayList<>();

String[] arr1 = {"0", "1/1"};
String[] arr2 = {"1", "1/2"};
String[] arr3 = {"2", "1/4"};

array.add(arr1);
array.add(arr2);
array.add(arr3);

Comparator<String[]> byFirstElement =
(String[] array1, String[] array2) -> Integer.parseInt(array1[0]) -
Integer.parseInt(array2[0]);


List<String[]> result = array.stream()
.sorted(array,byFirstElement) // error here
.collect(Collectors.toList());

问题是在排序行中我突出显示了一个错误,内容如下:“排序(java.util.List,java.util.Comparator

最佳答案

Stream.sorted() 采用比较器(除了不采用参数的重载之外)。因此,您所需要的只是 ...sorted(byFirstElement)... (流对其元素进行排序)

请注意,您的比较逻辑不会按降序排序,因此您需要将其更改为

Comparator<String[]> byFirstElement = 
(array1, array2) -> Integer.parseInt(array2[0]) - Integer.parseInt(array1[0]);
//reversed

或者在调用sorted()时反转它:

....sorted(byFirstElement.reversed())

关于java - 按第一个元素对字符串数组列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59933119/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com