为什么我的ArrayList不能用比较器进行排序?
这里是我的代码为什么我的ArrayList不能用比较器进行排序?
ArrayList<String> list = new ArrayList<>(); list.add("Emily");
list.add("Gary");
list.add("Harry");
list.add("Tom");
Comparator<String> name;
name = (String e1, String e2) -> e2.compareTo(e1);
Collections.sort(list, name);
for(String user: list){
System.out.println(user);
}
我想按字母顺序使用比较在列表中的名称进行排序,但是当我打印排序列表出来它是没有排序。我究竟做错了什么?
回答:
你在倒车的e2
和e1
的地方,所以你的输出是反向(从Z到A),如果你想按字母顺序排序(从A到Z),你会怎么做:
e1.compareTo(e2);
但由于String类是Comparable,你不必让自己的Comparator按字母顺序对它进行排序,你可以调用sort并按字母顺序排序(按字符串顺序)。
所以,你可以这样做:
Collections.sort(yourListHere);
以上是 为什么我的ArrayList不能用比较器进行排序? 的全部内容, 来源链接: utcz.com/qa/266225.html