@Override public void moveObjectsOfPositionTo( ShortPoint2D position, AbstractMaterialRequestPriorityQueue newAbstractQueue) { assert newAbstractQueue instanceof MaterialsForBuildingsRequestPrioQueue : "can't move positions between diffrent types of queues."; MaterialsForBuildingsRequestPrioQueue newQueue = (MaterialsForBuildingsRequestPrioQueue) newAbstractQueue; final int numberOfBuildings = settings.getNumberOfBuildings(); for (int prioIdx = 0; prioIdx < queues.length; prioIdx++) { DoubleLinkedList<MaterialRequestObject>[] prioQueue = queues[prioIdx]; for (int queueIdx = 0; queueIdx < numberOfBuildings; queueIdx++) { Iterator<MaterialRequestObject> iter = prioQueue[queueIdx].iterator(); while (iter.hasNext()) { MaterialRequestObject curr = iter.next(); if (curr.getPos().equals(position)) { iter.remove(); newQueue.queues[prioIdx][queueIdx].pushEnd(curr); curr.requestQueue = newQueue; } } } } }