gpt4 book ai didi

java - 反转队列的内容

转载 作者:太空宇宙 更新时间:2023-11-04 11:34:20 24 4
gpt4 key购买 nike

我必须反转队列的内容,但目前我的reverseQueue 方法遇到问题。每当我打印时,它都会打印两次数组内容。如果有人能解释我做错了什么将会有所帮助。

代码:

public static void reverseQueue (Queue Q){
for (int i = Q.size() -1; i>=0; i--){
int temp = (int) Q.dequeue();
Q.enqueue(temp);
System.out.print(temp+" ");
}
}

尺寸方法:

public int size(){
return count;
}

队列

public class Queue{
private int QUEUE_SIZE = 5;
private Object[] items;
private int front, back, count;

public Queue() {
items = new Object[QUEUE_SIZE];
front = 0;
back = QUEUE_SIZE -1;
count =0;
}

示例输出:

我要反转我的队列。

我的队列如下:20 30 40 50 20 30 40 50

最佳答案

这可以通过复制到列表、反转并重新填充来完成

public static void main(String[] args) throws Exception {
Queue<Integer> foo = new ArrayDeque<>(Arrays.asList(1, 2, 3));
System.out.println(foo);
reverseQueue(foo);
System.out.println(foo);
}

public static <T> void reverseQueue(Queue<T> q) {
List<T> copy = new ArrayList<>(q);
Collections.reverse(copy);
q.clear();
q.addAll(copy);
}

输出

[1, 2, 3]
[3, 2, 1]

关于java - 反转队列的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43454878/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com