排序和有序集合之间有什么区别吗?
答案 0 :(得分:144)
有序集合表示集合的元素具有特定顺序。订单与价值无关。 List就是一个例子。
排序集合意味着集合不仅具有顺序,而且顺序取决于元素的值。 SortedSet就是一个例子。
相比之下,没有任何订单的集合可以按任何顺序维护元素。 Set就是一个例子。
答案 1 :(得分:71)
有序集合根据您在集合中放入/移除它们的顺序来维护元素的顺序。
已排序的集合会根据排序条件对元素进行排序。
答案 2 :(得分:12)
Java使用“有序集合”来表示集合,例如List,其中(与HashSet不同),集合会记住元素应该处于什么顺序。因此元素可以添加到特定“位置”的集合中按顺序。
Java使用“sorted collection”来表示一个集合,例如SortedSet,其中(与List不同),迭代器遍历集合的顺序与指定的Comparator或元素的自然顺序一致。
所以区别在于排序是依赖于值(“已排序”),还是元素独立于其值(“有序”)的属性。
答案 3 :(得分:7)
是的,虽然概念很相似。
List
是一个有序集合:每个元素都有一个索引,它构成了元素的排序,但通常与元素本身的任何属性无关。
SortedMap
和SortedSet
是排序集合,这意味着通过集合的迭代将在从元素本身派生的序列中发生。例如,如果您有SortedSet<String>
,那么字符串将根据字典排序顺序排序。
当外部排序与元素的排序顺序相同时,可以对有序集合 进行排序,但不必(例如在使用Collections.sort()
之后)。排序的集合总是被隐式排序(即总是有一个“第一”元素,只要你不添加另一个较小的元素,它总是相同的。)
答案 4 :(得分:4)
有序集合是一个集合,用于跟踪插入每个元素的连续索引。
在整个使用Comparable接口时,排序集合是一个有序集合,当订单另外依赖于要插入的元素的值时,它提供了一种定义排序标准的方法。
我希望它可以提供帮助。
答案 5 :(得分:2)
Sorted意味着根据Comparable或Comparator的实现进行排序。 Ordered意味着它遵循顺序和定义的顺序或顺序的其他定义,但在其他方面是任意的。
因此,排序的字符串列表将根据String.compareTo方法进行排序。列表可能包含按任意顺序插入的字符串列表,但该顺序将始终保持不变。
当然,Collections类上有一些方法可以对列表进行排序。
答案 6 :(得分:0)
有序集合通常意味着元素从最小值到最大值排序,反之亦然,具体取决于算法运行的元素的属性。
对于整数集合,排序可以是从最小数到最大数 对于某人的收藏,可以根据人的身高或人的重量等进行评分。
在谈论订单时,通常意味着插入顺序。排序后可以更改订单
答案 7 :(得分:0)
排序集合与订购集合
1。排序的收藏集
已排序的集合是通过利用Java集合框架提供的排序功能来对集合进行排序。使用Java比较器从数据库读取数据之后,排序发生在运行Hibernate的JVM内存中。
如果您的收藏不大,将是一种更有效的排序方式。 由于它发生在jvm内存中,因此可能会抛出“内存不足”错误。
2。订单收集
Order集合通过在查询中指定order-by子句对集合进行排序,以便在检索时对该集合进行排序。 如果您的收藏非常大,将是一种更有效的排序方式。与排序的集合相比,它是快速的。