将链接列表添加到java中的另一个链接列表

时间:2012-11-15 23:18:19

标签: java linked-list

我正在尝试使用MyLinkedList类中名为addList的方法将链表添加到另一个链表。我坚持的是如何实现该方法,以便我可以将链表添加到我选择的索引位置的另一个链表中。

以下是我在MyLinkedList中的内容:

public void addList(int index, E e){
    if(index == 0){
        addFirst(e);
    } else if (index >= size){
        addLast(e);
    }
    else{
        Node<E> current = head;
        for(int i = 1; i < index; i++){
            current = current.next;
        }
        Node<E> temp = current.next;
        current.next = new Node<E>(e);
        (current.next).next = temp;
        size++;
    }
}

我知道这种方法不起作用,我已经尝试过了。 在我的程序本身,我有这些:

public class linkedlistwork {

    public static void main(String[] args) {
        MyLinkedList<String> alpha = new MyLinkedList<String>();
        alpha.add("hello");
        alpha.add("world");
        alpha.add("this");

        System.out.println(alpha);

        MyLinkedList<String> beta = new MyLinkedList<String>();
        beta.add("is");
        beta.add("java");
        beta.add("rocks");

        System.out.println(beta);

        alpha.addList(1, beta);
        System.out.println(alpha);
    }
}

正确的输出类似于:

OUTPUT:
[hello, is, java, rocks, world, this]

我的程序无法运行,此行发生错误

alpha.addList(1, beta);

在“beta”部分,它说:

类MyLinkedList中的

方法addList不能应用于给定的类型;   required:int,String   found:int,MyLinkedList   原因:实际参数MyLinkedList无法通过方法调用转换转换为String   其中E是一个类型变量:     E扩展在MyLinkedList类中声明的Object

我如何修复方法以便正确使用? 在此先感谢!!

2 个答案:

答案 0 :(得分:2)

在我看来,你的addList方法签名就是问题所在。 它应该看起来像:

public void addList(int index, List<E> list)

答案 1 :(得分:1)

您需要有一种方法来添加MyLinkedList<String>。这样的事情可以做到

public void addList(int index, MyLinkedList<E> beta){
//Somehow loop through the MyLinkedList, and do this.
   add(index+i,beta(i));
}