2017-06-19 3 views
-5

Ich versuche, ein array of linked lists zu erstellen Das Programm, das ich versuche zu schreiben, hat ein String-Array von Namen, aber einige Namen sind an der gleichen Stelle des Arrays. Zum Beispiel, wenn der Name morgan ist in array[0] und john ist auch in array[0] Wie kann ich eine verknüpfte Liste erstellen, die beide Namen in den gleichen Index gespeichert werden können. Ich versuche, Kollisionsauflösung zu replizieren.Array von verknüpften Listen Java

Ist es möglich, LinkedList<String> inkedlist = new LinkedList();

zu verwenden Wenn ich das, wie kann ich eine neue verknüpfte Liste für jeden Array-Index erstellen?

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

Nun, Sie haben eine 'LinkedList' Klasse. Was hält dich davon ab, ein Array von 'LinkedList's zu erstellen? –

+0

Ihre Frage ist nicht klar! – lihongxu

+0

Aufwendig, worüber muss ich klar sein? –

Antwort

0

Es ist nicht so einfach wie es klingt, aber ja, Sie können java.util.LinkedList verwenden.

Es erfordert, dass Sie Ihr Array ein Array von LinkedList oder nur List deklarieren (kein Array von String). Dies funktioniert:

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

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

jedoch, wo ich das Array instanziiert, erhalte ich eine Warnung: Type safety: The expression of type List[] needs unchecked conversion to conform to List<String>[]. Man hätte erwartet, dass new List<String>[1000] funktioniert, aber das tut es nicht. Es gibt einen Fehler: Cannot create a generic array of List<String>. Der Elementtyp eines Arrays darf kein generischer Typ sein. Es ist eine Besonderheit mit historischen Gründen, wir müssen einfach damit leben.

1

Ich weiß nicht, ob ich Ihre Frage verstehe. Hier ist deine Frage. Sie versuchen, ein Array von verketteten Listen zu erstellen Das Programm verfügt über ein String-Array von Namen,

: Sie haben String-Namen im Knoten, wenn Sie richtig hinzufügen, erhalten Sie die verknüpfte Liste.

jedoch sind einige Namen in der 'gleichen Position' des Arrays. Wenn zum Beispiel der Name morgan im Array [0] und John im Array [0] steht, kann ich eine verknüpfte Liste erstellen, die beide Namen im selben Index speichert.

: Wie wäre es mit einem weiteren Sting im Objekt, es, was Sie wollen?

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

nicht sicher, ob ich begann richtig, aber das ist, was ich habe bisher

: Sie sollten zunächst mit einem Konstruktor beginnen und machen hinzuzufügen, löschen und andere Funktionen.

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

Das obige enthält zwei String-Werte im selben CustomList-Index. Wenn ich die Frage falsch verstanden habe oder Sie noch Fragen haben, zögern Sie nicht zu fragen.

+0

Danke, das einzige Problem ist, dass es nicht immer nur zwei Namen geben kann. 100 Namen könnten auf die gleiche Position indexieren. –

+0

In diesem Fall erstellen Sie eine Liste anstelle von zwei Namen, so dass jeder Knoten eine Liste mit einer beliebigen Anzahl von Namen enthält. deklarieren Sie dazu ArrayList, wenn das String-Array auch funktioniert. – GentleCoder

Verwandte Themen