如何将两个通用队列组合在一起?
how to combine two generic queues together?
public class QueueDemo<T> {
public static <T> ArrayUnbndQueue<T> mergeQueue(ArrayBndQueue<T> q1, ArrayBndQueue<T> q2) {
ArrayUnbndQueue<T> temp = new ArrayUnbndQueue<T>();
while (!q1.isEmpty()) {
T x = q1.dequeue();
temp.enqueue(x);
}
while (!q2.isEmpty()) {
temp.enqueue(q2.dequeue());
}
return temp;
}
public static void main(String[] args) {
ArrayBndQueue<Integer> q1 = new ArrayBndQueue<Integer>();
ArrayBndQueue<Integer> q2 = new ArrayBndQueue<Integer>();
ArrayUnbndQueue<Integer> q3 = new ArrayUnbndQueue<Integer>();
q1.enqueue(1);
q1.enqueue(2);
q2.enqueue(5);
q2.enqueue(6);
q3.mergeQueue(q1, q2); // i get an errorThe method
//mergeQueue(ArrayBndQueue<Integer>,
//ArrayBndQueue<Integer>) is undefined
//for the type ArrayUnbndQueue<Integer>
}
}
我有一个方法可以添加两个队列并将它们 returns 作为一个新队列,我对通用数据类型不是很有经验,我相信它是什么导致了错误。
您没有 mergeQueue
ArrayUnbndQueue
但 QueueDemo
的任何方法。
因此,您必须在 QueueDemo
:
的 main
方法中执行此语句
ArrayUnbndQueue<Integer> q3 = mergeQueue(q1, q2);
问题与泛型无关。
public class QueueDemo<T> {
public static <T> ArrayUnbndQueue<T> mergeQueue(ArrayBndQueue<T> q1, ArrayBndQueue<T> q2) {
ArrayUnbndQueue<T> temp = new ArrayUnbndQueue<T>();
while (!q1.isEmpty()) {
T x = q1.dequeue();
temp.enqueue(x);
}
while (!q2.isEmpty()) {
temp.enqueue(q2.dequeue());
}
return temp;
}
public static void main(String[] args) {
ArrayBndQueue<Integer> q1 = new ArrayBndQueue<Integer>();
ArrayBndQueue<Integer> q2 = new ArrayBndQueue<Integer>();
ArrayUnbndQueue<Integer> q3 = new ArrayUnbndQueue<Integer>();
q1.enqueue(1);
q1.enqueue(2);
q2.enqueue(5);
q2.enqueue(6);
q3.mergeQueue(q1, q2); // i get an errorThe method
//mergeQueue(ArrayBndQueue<Integer>,
//ArrayBndQueue<Integer>) is undefined
//for the type ArrayUnbndQueue<Integer>
}
}
我有一个方法可以添加两个队列并将它们 returns 作为一个新队列,我对通用数据类型不是很有经验,我相信它是什么导致了错误。
您没有 mergeQueue
ArrayUnbndQueue
但 QueueDemo
的任何方法。
因此,您必须在 QueueDemo
:
main
方法中执行此语句
ArrayUnbndQueue<Integer> q3 = mergeQueue(q1, q2);
问题与泛型无关。