public Object get(Object o) { int index = head; while (index != tail) { if (elements[index].equals(o)) return elements[index]; index = increment(index); } return null; }
public Object get(Object o) { int index = head; while (index != tail) { if (elements[index].equals(o)) return elements[index]; index = increment(index); } return null; }
public Object get(Object o) { int index = head; while (index != tail) { if (elements[index].equals(o)) return elements[index]; index = increment(index); } return null; }
public Object get(Object o) { int index = head; while (index != tail) { if (elements[index].equals(o)) return elements[index]; index = increment(index); } return null; }
/** * Adds an object to the tail of the queue. */ public void enqueue(Object element) { int newTail = increment(tail); if (newTail == head) { grow(); newTail = tail + 1; } elements[tail] = element; tail = newTail; }
/** * Adds an object to the tail of the queue. */ public void enqueue(Object element) { int newTail = increment(tail); if (newTail == head) { grow(); newTail = tail + 1; } elements[tail] = element; tail = newTail; }
/** * Adds an object to the tail of the queue. */ public void enqueue(Object element) { int newTail = increment(tail); if (newTail == head) { grow(); newTail = tail + 1; } elements[tail] = element; tail = newTail; }
/** * Adds an object to the tail of the queue. */ public void enqueue(Object element) { int newTail = increment(tail); if (newTail == head) { grow(); newTail = tail + 1; } elements[tail] = element; tail = newTail; }
/** * Removes the given object from the queue. Shifts the underlying array. */ public boolean remove(Object o) { int index = head; //find the object to remove while (index != tail) { if (elements[index].equals(o)) break; index = increment(index); } //if element wasn't found, return if (index == tail) return false; //store a reference to it (needed for reuse of objects) Object toRemove = elements[index]; int nextIndex = -1; while (index != tail) { nextIndex = increment(index); if (nextIndex != tail) elements[index] = elements[nextIndex]; index = nextIndex; } //decrement tail tail = decrement(tail); //if objects are reused, transfer the reference that is removed to the end of the queue //otherwise set the element after the last one to null (to avoid duplicate references) elements[tail] = reuse ? toRemove : null; return true; }
/** * Removes the given object from the queue. Shifts the underlying array. */ public boolean remove(Object o) { int index = head; //find the object to remove while (index != tail) { if (elements[index].equals(o)) break; index = increment(index); } //if element wasn't found, return if (index == tail) return false; //store a reference to it (needed for reuse of objects) Object toRemove = elements[index]; int nextIndex = -1; while (index != tail) { nextIndex = increment(index); if (nextIndex != tail) elements[index] = elements[nextIndex]; index = nextIndex; } //decrement tail tail = decrement(tail); //if objects are reused, transfer the reference that is removed to the end of the queue //otherwise set the element after the last one to null (to avoid duplicate references) elements[tail] = reuse ? toRemove : null; return true; }
/** * Removes the given object from the queue. Shifts the underlying array. */ public boolean remove(Object o) { int index = head; //find the object to remove while (index != tail) { if (elements[index].equals(o)) break; index = increment(index); } //if element wasn't found, return if (index == tail) return false; //store a reference to it (needed for reuse of objects) Object toRemove = elements[index]; int nextIndex = -1; while (index != tail) { nextIndex = increment(index); if (nextIndex != tail) elements[index] = elements[nextIndex]; index = nextIndex; } //decrement tail tail = decrement(tail); //if objects are reused, transfer the reference that is removed to the end of the queue //otherwise set the element after the last one to null (to avoid duplicate references) elements[tail] = reuse ? toRemove : null; return true; }
/** * Removes the given object from the queue. Shifts the underlying array. */ public boolean remove(Object o) { int index = head; //find the object to remove while (index != tail) { if (elements[index].equals(o)) break; index = increment(index); } //if element wasn't found, return if (index == tail) return false; //store a reference to it (needed for reuse of objects) Object toRemove = elements[index]; int nextIndex = -1; while (index != tail) { nextIndex = increment(index); if (nextIndex != tail) elements[index] = elements[nextIndex]; index = nextIndex; } //decrement tail tail = decrement(tail); //if objects are reused, transfer the reference that is removed to the end of the queue //otherwise set the element after the last one to null (to avoid duplicate references) elements[tail] = reuse ? toRemove : null; return true; }
/** * Removes an returns the item at the head of the queue. */ public Object dequeue() { if (isEmpty()) return null; Object result = peek(); if (!reuse) elements[head] = null; head = increment(head); return result; }
/** * Removes an returns the item at the head of the queue. */ public Object dequeue() { if (isEmpty()) return null; Object result = peek(); if (!reuse) elements[head] = null; head = increment(head); return result; }
/** * Removes an returns the item at the head of the queue. */ public Object dequeue() { if (isEmpty()) return null; Object result = peek(); if (!reuse) elements[head] = null; head = increment(head); return result; }
/** * Removes an returns the item at the head of the queue. */ public Object dequeue() { if (isEmpty()) return null; Object result = peek(); if (!reuse) elements[head] = null; head = increment(head); return result; }