我正在尝试使用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
我如何修复方法以便正确使用? 在此先感谢!!
答案 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));
}