gpt4 book ai didi

java - 匿名函数 Collections.sort java

转载 作者:行者123 更新时间:2023-12-01 09:47:34 30 4
gpt4 key购买 nike

任何人都可以简单地解释一下这个列表如何排序,以及为什么匿名函数中的代码可以使排序列表的第一项始终是顶部的最后一个词典单词。我知道如果一个compareTo通过比较返回-1 0和1,但代码似乎暗示参数o1和o2可能会同时比较...

List<String> allNames = new ArrayList<>();
allNames("Alfred");
allNames("Mary");
allNames("Hilda");
allNames("Zenda");
allNames("Thomas");
allNames("Isabel");



Collections.sort(allNames, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {

if (o1.equals("Zenda") && !o2.equals("Zenda")){

return -1;

} else if (o2.equals("Zenda") && !o1.equals("Zenda")){

return 1 ;
}

return o1.compareTo(o2);
}
});

最佳答案

Comparator.compareComparable.compareTo 类似。它们或多或少执行相同的功能,但不同的是进行比较的对象。 compareTo 允许对象将自身与另一个对象进行比较,而 compare 则由“第三方”对象使用来比较其他两个对象。

这里的匿名Comparator正在比较两个Stringo1o2。如果o1应该出现在o2之前,则返回-1。否则,如果o2应该出现在o1之前,则返回1

匿名比较器的特别之处在于,它确保“Zenda”始终被视为第一。

关于java - 匿名函数 Collections.sort java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37863829/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com