【问题标题】:Why there is no SortedList [duplicate]为什么没有 SortedList [重复]
【发布时间】:2012-07-21 09:03:49
【问题描述】:

Sun 提供了 TreeSetTreeMap,但没有提供 TreeList。他们提供了一个实用程序Collections.sort() 来对列表进行排序。当他们提供Sorted Map和Set时,他们没有提供Sorted List的原因是什么?

这背后有什么具体原因吗?

我正在为 SCJP 做准备,所以在查看 GenericsCollections 时,我有这个疑问。谁能澄清一下。

【问题讨论】:

  • 他们提供了自定义比较器以及二进制搜索,因此,您拥有生成 SortedList 类所需的一切。
  • 而且TreeList 并不能真正保证实现,因为它不会比一般的ArrayList 快,除非在中间插入和删除(无论如何很少执行,如果你做很多这些,你应该使用 Set :)

标签: java


【解决方案1】:

List API 的第一行说它是一个有序集合(也称为序列)。如果对列表进行排序,则无法保持顺序,因此 Java 中没有 TreeList。正如您所提到的那样,您可能需要对其进行外部排序。
正如 API 所说,Java List 的灵感来自于 Sequence 并查看了序列属性 http://en.wikipedia.org/wiki/Sequence_(mathematics)

并不是说你不能对列表进行排序,而是Java对他的定义很严格,默认不提供排序版本的列表。

【讨论】:

    猜你喜欢
    • 2012-02-02
    • 2011-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多