这是我的代码
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);
}
我想使用比较器按字母顺序对列表中的名称进行排序,但是当我打印出已排序的列表时,它不会被排序。我做错了什么?
答案 0 :(得分:2)
你正在翻转e2
和e1
的位置,所以你的输出是反向的(从Z到A),如果你想按字母顺序排序(从A到Z)你会这样做:
e1.compareTo(e2);
但是因为String类是Comparable,所以你不必让你自己的Comparator按字母顺序排序,你可以调用sort,它将按字母顺序(字符串的自然顺序)顺序排序。
所以你可以这样做:
Collections.sort(yourListHere);