2012-11-16 60 views
1

我想設計一個鏈表到另一個鏈表,到目前爲止,我在MyLinkedList類此方法:添加到鏈表LinkedList的,JAVA

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++; 
     } 
    } 

我卡上的方法本身,我的主要程序有兩個LinkedLists,看起來像這樣:

MyLinkedList<String> strings1 = new MyLinkedList<String>(); 
     strings1.add("java"); 
     strings1.add("language"); 
     strings1.add("cooler"); 
     strings1.add("noob"); 
     System.out.println(list1); 

     MyLinkedList<String> strings2 = new MyLinkedList<String>(); 
     strings2.add("artistic"); 
     strings2.add("cereal"); 
     strings2.add("bowl"); 
     System.out.println(list2); 

然後我想補充的字符串2 LinkedList的給string1的鏈表。我會怎麼做? 我曾經想過用

strings1.addList(2, strings2); 

,但沒有奏效,它不會讓我補充strings2到strings1 我想輸出是這樣的,如果我有它做: java的,語言,藝術,麥片,碗,冷卻器,noob 或類似的東西,請幫忙!

+1

是否要將一個列表的*內容*添加到另一個列表中?或者你是否想將實際列表本身添加到新的鏈接列表中? –

+0

另外,當你說「它沒有工作」會發生什麼?你怎麼知道「它不會讓你添加strings2到string1」?當你嘗試時會發生什麼? –

+0

爲什麼你需要創建另一個班級?你可以使用原來的類。如果您需要自定義索引,請使用數組。 –

回答

0

使用方法addAll(int index, Collection c)將兩個列表添加在一起。

strings1.addAll(startIndex, strings2); 

您也可以實現List接口類MyLinkedList .. 這還不算真正清楚你MyLinkedList類是什麼樣子?

例如:

+0

問題是關於在自定義鏈表類中實現一個方法。 –

+0

那麼,你不能將兩件事情添加到同一個索引,所以我不知道你想要實現什麼? –

+0

不是List#addAll(int,java.util.Collection)你想實現什麼?我不明白爲什麼你會重寫它,如果你可以實現列表界面 –

3

你在你的類中的方法,它接受一個節點,只是因爲你需要爲第二個列表調用此多次

void addAll(int index, MyList<> second_list) 
{ 
    for(Object o : second_list) 
    { 
    addList(index, o); 
    ++index; 
    } 
} 

基於for循環的上述範圍可能無法正常工作,除非你的類實現正確的接口,我是懶惰 - 用你的類支持正常的迭代...

+0

+1爲回答實際(不清楚 - 國際海事組織)的問題。 –

+0

+1哎呀...對不起,給了你+1,你的解決方案其實是正確的。我的錯。 – Renato

0

最簡單的方式。 ...

public void insertList(int index, List<String> list) { 
    Collections.reverse(list); 
    for (String str : list) { 
     add(index, str); 
    } 
} 
+0

當然,這段代碼應該進入LinkedList的子類。 – Renato