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上按数字升序排序。