Ano*_*non 8 java queue foreach iterator priority-queue
我有一个涉及迭代优先级队列的java赋值.队列由带有字符串和int的对象组成,我需要有一种方法来检查队列中所有对象的单独对象的字符串.
这是一个迭代器对象的最佳方法吗?这看起来太乱了.我可以出列队并入队,但这似乎效率低下.也许是一个foreach循环?
是的,如果您需要检查集合中的每个元素,那么iterator或者for each可能是最好的.
Iterator<E> iter = myPriorityQueue.iterator();
while (iter.hasNext()) {
current = iter.next();
// do something with current
}
Run Code Online (Sandbox Code Playgroud)
要么
for (Element e : myQueue) {
// do something with e
}
Run Code Online (Sandbox Code Playgroud)
一个小细节:如果您的队列有可能在循环期间被修改,那么 和iterator都会for each导致ConcurrentModificationException; 如果队列有可能在处理过程中被修改,您可以使用poll():
Resource resource;
while ((resource = resourceQueue.poll()) != null) {
this.processIncludes(resourceQueue, resource);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22110 次 |
| 最近记录: |