java如何正确迭代优先级队列?
我有一个java任务,涉及迭代优先级队列。队列由包含字符串和int的对象组成,我需要有一种方法来对照队列中的所有对象检查单独对象的字符串
最好的方法是使用迭代器对象吗?那看起来太乱了。我可以排队,也可以排队,但这似乎效率低下。也许是foreach循环
你可以在下面搜索框中键入要查询的问题!
我有一个java任务,涉及迭代优先级队列。队列由包含字符串和int的对象组成,我需要有一种方法来对照队列中的所有对象检查单独对象的字符串
最好的方法是使用迭代器对象吗?那看起来太乱了。我可以排队,也可以排队,但这似乎效率低下。也许是foreach循环
# 1 楼答案
是的,如果需要检查集合中的每个元素,最好使用
iterator
或for each
或者
# 2 楼答案
一个小细节:如果在循环过程中您的队列可能会被修改,那么:
iterator
和for each
都会导致ConcurrentModificationException
;如果在处理过程中队列可能会被修改,您可以使用^{# 3 楼答案
如果你不在乎订购(在这种情况下,你为什么要处理
PriorityQueue
?),使用迭代器。如果要按优先级进行迭代,请参阅Javadoc的建议: