您可以从队列中删除元素,直到到达所需的元素为止。您可以将删除的元素重新添加到队列末尾或将它们放入不同的队列中(并在到达所需元素后添加其余元素)。
不过,您确实不应该使用这样的队列!
public static <T> T get(Queue<T> queue, int index) {
synchronized (queue) {
if (queue == null) {
return null;
}
int size = queue.size();
if (index < 0 || size < index + 1) {
return null;
}
T element = null;
for (int i = 0; i < size; i++) {
if (i == index) {
element = queue.remove();
} else {
queue.add(queue.remove());
}
}
return element;
}
}
Run Code Online (Sandbox Code Playgroud)