我正在尝试使用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);
在“测试版”部分,它说:
类MyLinkedList中的addList方法不能应用于给定类型;
必需:int,String
找到:int,MyLinkedList
原因:实际参数MyLinkedList无法通过方法调用转换转换为String
其中E是类型变量:
E扩展在类MyLinkedList中声明的对象
我该如何解决我的方法,以便可以正确使用它?
提前致谢!!
最佳答案
在我看来,您的addList方法签名是问题所在。
它应该看起来像:
public void addList(int index, List<E> list)