public Iterator<E> iterator() { return new Iterator<E>() { private int pos = 0; private int size = size(); private final int modIdx = modCnt; public boolean hasNext() { if (modCnt != modIdx) { throw Messages.msg.concurrentModification(); } return pos < size; } public E next() { if (modCnt != modIdx) { throw Messages.msg.concurrentModification(); } final int pos = this.pos; if (pos >= size) { throw Messages.msg.noSuchElement(); } final E[] elements = ArrayQueue.this.elements; final E value = elements[(tail + pos) % elements.length]; this.pos = pos + 1; return value; } public void remove() { throw Assert.unsupported(); } }; }
public Iterator<E> iterator() { return new Iterator<E>() { private int pos = 0; private int size = size(); private final int modIdx = modCnt; public boolean hasNext() { if (modCnt != modIdx) { throw Messages.msg.concurrentModification(); } return pos < size; } public E next() { if (modCnt != modIdx) { throw Messages.msg.concurrentModification(); } final int pos = this.pos; if (pos >= size) { throw Messages.msg.noSuchElement(); } final E[] elements = ArrayQueue.this.elements; final E value = elements[(tail + pos) % elements.length]; this.pos = pos + 1; return value; } public void remove() { throw Assert.unsupported(); } }; }
public Iterator<E> iterator() { return new Iterator<E>() { private int pos = 0; private int size = size(); private final int modIdx = modCnt; public boolean hasNext() { if (modCnt != modIdx) { throw Messages.msg.concurrentModification(); } return pos < size; } public E next() { if (modCnt != modIdx) { throw Messages.msg.concurrentModification(); } final int pos = this.pos; if (pos >= size) { throw Messages.msg.noSuchElement(); } final E[] elements = ArrayQueue.this.elements; final E value = elements[(tail + pos) % elements.length]; this.pos = pos + 1; return value; } public void remove() { throw Assert.unsupported(); } }; }