【问题标题】:Java Collections Framework's sorting algorithmsJava Collections Framework 的排序算法
【发布时间】:2013-03-19 15:50:32
【问题描述】:

我试图了解 Java Collections Framework 默认情况下如何对其集合进行排序,但我很困惑,因为我读到所有集合都是使用合并排序进行排序的。但是当我查看 Array 类时,我看到了这一点:«实施者应该随意替换其他算法,只要遵守规范本身。 (例如,sort(Object[]) 使用的算法不必是归并排序,但它必须是稳定的。)» 这意味着它也使用其他排序算法。那么这些集合究竟是如何排序的呢?

【问题讨论】:

  • 除非您自己实现 Arrays 类,否则它使用归并排序。此外,数组与集合不同
  • Collections.sort 代表Arrays.sort,这些天使用TimSort

标签: java algorithm collections


【解决方案1】:

对集合进行排序的代码随 JRE/JDK 一起提供。

实施 JRE/JDK 的任何人都可以选择以他想要的任何方式实施它,只要它符合要求(即它实际上对集合进行了正确排序并且排序稳定)。

一些 实现可能会选择合并排序,而其他实现可能会选择其他。无需具体实现。

【讨论】:

    猜你喜欢
    • 2011-05-14
    • 1970-01-01
    • 1970-01-01
    • 2013-02-15
    • 1970-01-01
    • 2011-01-04
    • 2010-10-08
    • 2013-09-04
    相关资源
    最近更新 更多