2012-11-15 164 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)); 
}