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