为什么我的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);

}

我想按字母顺序使用比较在列表中的名称进行排序,但是当我打印排序列表出来它是没有排序。我究竟做错了什么?

回答:

你在倒车的e2e1的地方,所以你的输出是反向(从Z到A),如果你想按字母顺序排序(从A到Z),你会怎么做:

e1.compareTo(e2); 

但由于String类是Comparable,你不必让自己的Comparator按字母顺序对它进行排序,你可以调用sort并按字母顺序排序(按字符串顺序)。

所以,你可以这样做:

Collections.sort(yourListHere); 

以上是 为什么我的ArrayList不能用比较器进行排序? 的全部内容, 来源链接: utcz.com/qa/266225.html

回到顶部