Rol*_*all 7 java collections list set
为什么Collections.sort()只适用于Lists而不适用于Sets?有什么特别的原因吗?
大多数(但不是全部)Set实现没有顺序概念,因此Collections.sort不支持它们作为一个整体.如果你想要一个具有订单概念的集合,你可以使用类似下面的东西TreeSet:
NavigableSet基于a 的实现TreeMap.元素按照它们的自然顺序排序,或者根据Comparator设置的创建时间提供,具体取决于使用的构造函数.
接口的哈希表和链表实现
Set,具有可预测的迭代顺序.此实现与HashSet的不同之处在于它维护了一个贯穿其所有条目的双向链表.此链接列表定义迭代排序,即元素插入集合的顺序(插入顺序)
A Set不是List.虽然List按合同规定,应该保留插入顺序(否则,这样的方法.get(someindex)没有任何意义),这不是a的情况Set.你没有办法在一个特定的索引中获取一个元素Set!你也没有方法插入特定的位置等.
更具体地说,排序Set是未定义的; 但是,实现的Set可添加排序约束.
例如:
LinkedHashSet 保留插入顺序;TreeSet保持其元素的自然顺序,或者因为它的元素实现Comparable,或者因为你提供了一个Comparator.如果您对a进行了排序LinkedHashSet,则会破坏其插入顺序保证!
| 归档时间: |
|
| 查看次数: |
2961 次 |
| 最近记录: |