如何将两个通用队列组合在一起?

汉农·卡乌德
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> 
    }
}

我有一个方法可以添加两个队列并将它们作为一个新队列一起返回,我对通用数据类型的经验不是很丰富,我相信这是导致错误的原因。

迈克尔·卡特

您没有任何方法mergeQueuefor ArrayUnbndQueuebut for QueueDemo因此,您必须在您的main方法中执行此声明QueueDemo

ArrayUnbndQueue<Integer> q3 = mergeQueue(q1, q2);

该问题与泛型无关。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章