有序和有序集合之间有什么区别?

Joh*_*nna 119 java collections

排序有序集合之间有什么区别吗?

g .*_*g . 155

一个有序集合意味着该集合的元素有一个特定的顺序.订单与价值无关.甲列表是一个例子.

一个分类收集不仅意味着这个集合中有顺序,但顺序取决于元素的值.甲SortedSet的就是一个例子.

相反,没有任何订单集合可以按任何顺序维护元素.一就是一个例子.


nos*_*nos 74

有序集合根据您在集合中放入/移除它们的顺序来维护元素的顺序.

已排序的集合会根据排序条件对元素进行排序.


Ste*_*sop 15

Java使用"有序集合"来表示集合,例如List,其中(与HashSet不同),集合记住元素应该处于什么顺序.因此元素可以在顺序中的特定"位置"添加到集合中.

Java使用"sorted collection"来表示一个集合,例如SortedSet,其中(与List不同),迭代器遍历集合的顺序与指定的Comparator或元素的自然顺序一致.

所以区别在于排序是依赖于值("已排序"),还是元素独立于其值("有序")的属性.

  • 提到“Java”的好答案和+1。它*有点*在大多数地方也是公认的定义,比如python中的`OrderedDict`。但在 .NET 中,“排序”可枚举的接口称为“IOrderedEnumerable”。所以这取决于。就是说.. (2认同)

Mic*_*rdt 7

是的,虽然概念是相似的.

List 是一个有序集合:每个元素都有一个索引,它形成元素的排序,但通常不与元素本身的任何属性相关.

SortedMap并且SortedSet是排序集合,这意味着通过集合的迭代将在从元素本身派生的序列中发生.例如,如果您有一个SortedSet<String>字符串,则将根据字典排序顺序对字符串进行排序.

当外部排序与元素的排序顺序相同时,可以对有序集合进行排序,但不必(例如在使用之后Collections.sort()).排序的集合总是隐式排序(即总是有一个"第一"元素,只要你不添加另一个较小的元素,它总是相同的).


小智 5

有序集合是跟踪每个元素插入的连续索引的集合。

排序集合是有序集合,当顺序另外取决于要插入的元素的值时,在 Comparable 接口的整个使用过程中,该接口为您提供了定义排序标准的方法。

我希望它能有所帮助。