List<List<String>> sortItem = new ArrayList<List<String>>();
sortItem.add(Arrays.asList("ajack","2","3"));
sortItem.add(Arrays.asList("carry","5","6"));
sortItem.add(Arrays.asList("elvy","1","8"));
sortItem.add(Arrays.asList("zack","1","9"));
sortItem.add(Arrays.asList("dusk","1","15"));
sortItem.add(Arrays.asList("dawn","1","10"));


预期的结果是sortItem按索引0按字母顺序排序
或sortItem按索引2排序

最佳答案

两种请求的排序都可以使用Collections.sort(List<T>, Comparator<T>)来实现,其中对于每个寻求的排序都需要一个不同的Comparator

具体来说,Collections.sort(sortItem, Comparator.comparing(list -> list.get(0)));将在索引0上按字母顺序排序,Collections.sort(sortItem, Comparator.comparing(list -> list.get(2)));将在索引2上按字母顺序排序,而Collections.sort(sortItem, Comparator.comparingInt(list -> Integer.valueOf(list.get(2))));将在索引2上按数字升序排序。

08-07 18:42