gpt4 book ai didi

java - 为什么这两个代码片段会产生相同的结果?

转载 作者:行者123 更新时间:2023-12-03 05:15:46 25 4
gpt4 key购买 nike

我正在查看一堆像这样的代码并使用 Comparator<T>对字符串数组进行排序(我问这个问题的唯一原因是我很好奇 Comparator<T> 如何处理所有这些):

 String[] names = //An string array

Arrays.sort(names, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return (o1.length()-o2.length());
}
});

我对此很熟悉:

Arrays.sort(names, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
if(o1.length()>o2.length())
return 1;
else if(o1.length()==o2.length())
return 0;
else
return -1;
}
});

如果第一个字符串的长度较大,则处理返回 1;如果第二个字符串较大,则返回 -1;如果它们的长度相同,则返回 0。但第一个片段返回它们的长度之间的差异,可能小于-1,也可能大于1。那么Comparator<T>怎么办?处理所有这些它们会产生相同的结果吗?

最佳答案

来自https://docs.oracle.com/javase/7/docs/api/java/util/Comparator.html#compare(T,%20T) :

Returns: a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the second.

它不需要是 -1 或 1,而只是负整数或正整数。

关于java - 为什么这两个代码片段会产生相同的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38324131/

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