Java - PriorityQueue vs sorted LinkedList

2022-09-03 03:49:00

哪个实现不那么“沉重”:优先级队列或排序的LinkedList(使用比较器)?

我想对所有项目进行排序。插入将非常频繁,并且通常我必须运行所有列表以进行一些操作。


答案 1

A是最糟糕的选择。使用(或者更一般地说,使用 RandomAccess 实现器)或 .如果确实使用了列表,请仅在循环访问其内容之前对其进行排序,而不是在每次插入之后进行排序。LinkedListArrayListPriorityQueue

需要注意的一件事是迭代器没有按顺序提供元素;您实际上必须删除元素(清空队列)才能按顺序循环访问其元素。PriorityQueue


答案 2

您应该同时实现这两种情况,然后对实际数据进行性能测试,以查看哪种数据在您的特定情况下效果最佳。


推荐