Sun 提供了TreeSet和TreeMap但没有 TreeList。他们提供了一个实用程序Collections.sort()来对列表进行排序。当他们提供Sorted Map和Set时,他们没有提供Sorted List的原因是什么?
这背后有什么具体原因吗?
我正在为 SCJP 做准备,所以在经历GenericsandCollections时,我有这个疑问。谁能澄清一下。
Sun 提供了TreeSet和TreeMap但没有 TreeList。他们提供了一个实用程序Collections.sort()来对列表进行排序。当他们提供Sorted Map和Set时,他们没有提供Sorted List的原因是什么?
这背后有什么具体原因吗?
我正在为 SCJP 做准备,所以在经历GenericsandCollections时,我有这个疑问。谁能澄清一下。
List API 中的第一行表示它是一个有序集合(也称为序列)。如果对列表进行排序,则无法保持顺序,因此 Java 中没有 TreeList。可能就是这种情况,您需要像您提到的那样对其进行外部排序。
正如 API 所说,Java List 从 Sequence 中获得灵感,并查看序列属性http://en.wikipedia.org/wiki/Sequence_(mathematics)
这并不意味着您不能对列表进行排序,而是 Java 严格遵守他的定义,并且默认情况下不提供列表的排序版本。