(Java 8)我有一個 ArrayList 的 ArrayList 如下:
[5, 10]
[2, 11]
[1, 12]
[8, 13]
我希望這些串列按串列中的第一個值以升序或降序排序。例如,對于升序,ArrayList 將按以下順序排列:
[1, 12]
[2, 11]
[5, 10]
[8, 13]
我怎樣才能做到這一點?
我正在努力使用比較器類。我見過的其他檔案是指此資料何時由陣串列示(Arrays.sort 然后在引數中定義一個比較器),但是當它是 ArrayLists 串列時,我無法找出解決方案。
uj5u.com熱心網友回復:
使用流 API (Java 8):
public static void main(String[] args) {
List<List<Integer>> list = new ArrayList<>();
list.add(asList(5, 10));
list.add(asList(2, 11));
list.add(asList(1, 12));
list.add(asList(8, 15));
System.out.println("sorted asc = " list.stream()
.sorted(Comparator.comparing(o -> o.get(0)))
.collect(Collectors.toList()));
System.out.println("sorted desc = " list.stream()
.sorted((i, j) -> -i.get(0).compareTo(j.get(0)))
.collect(Collectors.toList()));
}
private static List<Integer> asList(Integer... arr) {
return Arrays.asList(arr);
}
按升序排序 = [[1, 12], [2, 11], [5, 10], [8, 15]]
排序的 desc = [[8, 15], [5, 10], [2, 11], [1, 12]]
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/451552.html
上一篇:我想要函式從xy轉換為單元格
