首页 >Java >java教程 >为什么Java没有SortedList?

为什么Java没有SortedList?

Patricia Arquette
Patricia Arquette原创
2024-12-11 20:35:11593浏览

Why Doesn't Java Have a SortedList?

为什么 Java 缺少 SortedList

与 Java Collections 框架中的 SortedSet 和 SortedMap 不同,Java 没有提供专用的 SortedList。尽管有这样的遗漏,Java 确实通过 java.util.Collections.sort() 方法提供了排序功能。

遗漏的原因

缺少 SortedList 的原因从列表迭代器的基本性质来看。列表迭代器优先保留元素的插入顺序。另一方面,排序可以被视为对数据结构的操作,改变元素顺序。

SortedList 的替代品

  1. 排序集和多重集(Bags):

    • SortedSet 在元素插入期间自动排序,无需手动排序。
    • TreeMultiset(Multiset 实现)允许重复元素,同时保留排序order.
  2. Collections.sort():

    • 通过修改 List 实例的内部数据结构对 List 实例进行排序。
    • 接受比较器进行自定义排序,允许区域设置敏感的字符串排序,例如。
  3. PriorityQueue:

    • 虽然不是 SortedList 的直接替代品,但 PriorityQueue 提供了排序队列行为适合某些用例。
    • 通过 PriorityQueue 迭代返回排序后的元素
  4. 自定义实现:

    • 用户可以通过扩展 AbstractList 类并覆盖 add 来创建自己的 SortedList和排序方法。
    • 不建议使用此选项,因为它违反了 List 接口约定并且不提供与现有解决方案相比具有显着优势。

以上是为什么Java没有SortedList?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn