2017-06-19 163 views
-5

我試圖創建一個array of linked lists 我試圖編寫的程序有一個名稱的字符串數組,但有些名稱與數組位於同一位置。 例如,如果名稱morgan位於array[0]john也位於array[0]如何創建一個允許將兩個名稱存儲在相同索引中的鏈接列表。我正試圖複製separate chaining衝突解決方案。鏈接列表數組Java

是否有可能使用LinkedList<String> inkedlist = new LinkedList();

如果我使用,我如何可以爲每個數組索引一個新的鏈接列表?

for(int i = 0; i < array.length; i++){ 
      array[i] = new LinkedList(); 
     } 
+0

嗯,你有一個'LinkedList'類。什麼阻止你創建一個'LinkedList'數組? –

+0

你的問題不清楚! – lihongxu

+0

詳細說明,我需要清楚些什麼? –

回答

0

它不像聽起來那麼簡單,但是,可以使用java.util.LinkedList

它要求您聲明陣列的數組爲LinkedList或只是List(而不是String的數組)。這工作:

List<String>[] array = new List[1000]; 

    for (int i = 0; i < array.length; i++){ 
     array[i] = new LinkedList<>(); 
    } 

但是,如果我實例化陣列,我得到一個警告:Type safety: The expression of type List[] needs unchecked conversion to conform to List<String>[]。人們預計new List<String>[1000]工作,但它不會。它給出了一個錯誤:Cannot create a generic array of List<String>。數組的元素類型不能是泛型類型。這是一個有歷史原因的特點,我們只能忍受它。

1

我不知道我是否理解你的問題。這是你的問題。 你要創建鏈表的陣列中的程序有名字的「字符串數組」,

:您在節點具有字符串名稱,如果你添加正確的話,你會得到LinkedList的。

但是有些名稱在數組的「相同位置」。例如,如果名稱morgan在數組[0]中,並且john也在數組[0]中,那麼我如何創建一個鏈接列表來允許兩個名稱存儲在同一個索引中。

:如何在對象中添加一個Sting,它是你想要的?

class Node{ 
    String firstName; 
    String secondName; 
    Node next = null; 
} 

不知道我是否正確啓動,但是這是我迄今爲止

:你應該用一個構造函數首先啓動並進行添加,刪除等功能。

public Class CustomList{ 

    private CustomList head; 
    private int index = 0; 


    private Class Node{ 

     private String firstName; 
     private String secondName; 
     private Node next; 

**constructor** 
     public Node(String firstName, String secondName){ 
      this.firstName = firstName; 
      this.secondName = secondName; 
      next = null; 
     } 

    } 

**constructor** 
    public CustomList(){ 
     head = null; 
    } 
} 

上面將包含在CustomList的相同的索引兩個字符串值。 如果我理解錯誤的問題或者有任何問題可以隨意問。

+0

謝謝,唯一的問題是,可能並不總是隻有2個名字。 100名可能指數在相同的位置 –

+0

在這種情況下,做一個列表,而不是兩個名稱值,以便每個節點都包含字符串,它可以是名稱的任意號碼的列表。在那裏聲明ArrayList,否則可以使用String數組。 – GentleCoder