我是 Java 的初学者。请建议可以/应该使用哪些集合来维护 Java 中的排序列表。我试过 Map
和 Set
,但它们不是我要找的。
原文由 rohan 发布,翻译遵循 CC BY-SA 4.0 许可协议
我是 Java 的初学者。请建议可以/应该使用哪些集合来维护 Java 中的排序列表。我试过 Map
和 Set
,但它们不是我要找的。
原文由 rohan 发布,翻译遵循 CC BY-SA 4.0 许可协议
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
3 回答1.7k 阅读✓ 已解决
这来得很晚,但是 JDK 中有一个类只是为了有一个排序列表。它被命名为(与其他
Sorted*
接口有些混乱)“java.util.PriorityQueue
”。它可以排序Comparable<?>
s 或使用Comparator
。与使用
List
排序的Collections.sort(...)
的区别在于,通过使用堆数据结构,这将始终保持部分顺序,具有 O(log(n)) 插入性能,而插入已排序的ArrayList
将是 O(n)(即,使用二进制搜索和移动)。但是,与
List
不同,PriorityQueue
不支持索引访问(get(5)
), 唯一的方法是访问堆中的项目一次(因此名称PriorityQueue
)。