2012-11-15 129 views
0

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

下面是我在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); 

在“测试”部分,它表示:

方法addList在类MyLinked列表不能应用于给定的类型; 需要:整型,字符串 发现:整数,MyLinkedList 原因:实际参数MyLinkedList不能通过方法调用转换 被转换成字符串,其中E是一个类型的变量: ê延伸类MyLinkedList对象声明

如何将我修复了我的方法,以便我可以正确使用它? 在此先感谢!

+0

请问你可以添加矢量的定义? – PearsonArtPhoto

+0

我想你会需要你的addList方法在那里有泛型: 'public void addList(int index,E e){' – Quetzalcoatl

回答

2

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

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

你需要有添加MyLinkedList<String>的方法。像这样会做

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