下面列出了java.util.concurrent.PriorityBlockingQueue#iterator ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
/**
* iterator.remove removes current element
*/
public void testIteratorRemove() {
final PriorityBlockingQueue q = new PriorityBlockingQueue(3);
q.add(new Integer(2));
q.add(new Integer(1));
q.add(new Integer(3));
Iterator it = q.iterator();
it.next();
it.remove();
it = q.iterator();
assertEquals(it.next(), new Integer(2));
assertEquals(it.next(), new Integer(3));
assertFalse(it.hasNext());
}
/**
* iterator.remove removes current element
*/
public void testIteratorRemove() {
final PriorityBlockingQueue q = new PriorityBlockingQueue(3);
q.add(new Integer(2));
q.add(new Integer(1));
q.add(new Integer(3));
Iterator it = q.iterator();
it.next();
it.remove();
it = q.iterator();
assertEquals(it.next(), new Integer(2));
assertEquals(it.next(), new Integer(3));
assertFalse(it.hasNext());
}
/**
* iterator iterates through all elements
*/
public void testIterator() {
PriorityBlockingQueue q = populatedQueue(SIZE);
Iterator it = q.iterator();
int i;
for (i = 0; it.hasNext(); i++)
assertTrue(q.contains(it.next()));
assertEquals(i, SIZE);
assertIteratorExhausted(it);
}
/**
* iterator iterates through all elements
*/
public void testIterator() {
PriorityBlockingQueue q = populatedQueue(SIZE);
Iterator it = q.iterator();
int i;
for (i = 0; it.hasNext(); i++)
assertTrue(q.contains(it.next()));
assertEquals(i, SIZE);
assertIteratorExhausted(it);
}
private void remove(PriorityBlockingQueue<MergeWork> queue, String id) {
Iterator<MergeWork> iterator = queue.iterator();
while (iterator.hasNext()) {
MergeWork mergeWork = iterator.next();
if (id.equals(mergeWork.getId())) {
iterator.remove();
}
}
}