gpt4 book ai didi

java - Arrays.sort(object[]) 没有抛出 classcastexception

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:02:36 26 4
gpt4 key购买 nike

代码:

public class CompareTest {

public static void main(String[] args) {

ArrayList list = new ArrayList();
(list).add(new CompareTest());


Arrays.sort(list.toArray()); //Does not throw Exception , why ?
Collections.sort(list); //throws ClassCastException
}

}

根据 Java 文档: Arrays#sort

按照升序排列指定的对象数组 其元素的自然排序。 数组中的所有元素必须实现 Comparable 接口(interface)

为什么 Arrays#sort , 不会像 JavaDoc 所述那样抛出 ClassCastException 吗?

最佳答案

因为 Arrays.sort() 的源代码有这个快捷方式:

    int nRemaining  = hi - lo;
if (nRemaining < 2)
return; // Arrays of size 0 and 1 are always sorted

因此它不会检查数组的元素是否实现了 Comparable,因为它不必对只有一个元素的数组进行排序。

请注意,javadoc 不保证抛出 ClassCastException。

关于java - Arrays.sort(object[]) 没有抛出 classcastexception,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15450391/

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