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>
}
}
我有一个方法可以添加两个队列并将它们作为一个新队列一起返回,我对通用数据类型的经验不是很丰富,我相信这是导致错误的原因。
您没有任何方法mergeQueue
for ArrayUnbndQueue
but for QueueDemo
。因此,您必须在您的main
方法中执行此声明QueueDemo
:
ArrayUnbndQueue<Integer> q3 = mergeQueue(q1, q2);
该问题与泛型无关。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句