2017-04-20 10 views
1

Wie erstellt man einen Vektor der verknüpften Liste in Java mit Collections? Bisher habe ich den folgenden Code geschrieben:Vektor der verknüpften Liste

Vector <LinkedList <Integer> > adj = new Vector<>(); 

Allerdings bin ich nicht in der Lage, herauszufinden, wie der Vektor mit Kopfknoten von der Liste zu initialisieren.

Was ich will, ist eine ganze Zahl N gegeben, ich wünsche den Vektor mit den Werten 0 bis N-1 als der Kopfknoten zu initialisieren:

e.g given N = 4 

vector ---> 0 
      1 
      2 
      3 

Damit später kann ich Mitglieder zur Liste hinzuzufügen, wenn benötigt wie:

vector ---> 0->2->3 
      1->3 
      2->0->1 
      3->1 
+2

Sie erstellen einen 'Vektor' wie Sie es getan haben und fügen dann so viele leere' LinkedList' Objekte hinzu, wie Sie benötigen. Aber zuerst, warum benutzt du einen 'Vektor'? Das riecht sehr nach einem [XY-Problem] (http://xyproduct.info) –

+0

Dies ist eine Erklärung zu @ JimGarrisons Kommentar wrt. 'Vektor'. Aus dem Javadoc von 'Vector': [" Wenn keine threadsichere Implementierung benötigt wird, wird empfohlen, 'ArrayList' anstelle von' Vector' zu verwenden. "] (Https://docs.oracle.com/javase/ 8/docs/api/java/util/Vektor.html) – Turing85

Antwort

1

mit dem Code, den Sie geschrieben haben, haben Sie einen leeren Vektor erstellt - Sie können es mit der gewünschten Anzahl von LinkedList Instanzen füllen (ich vermute, Sie sind ein C++ Programmierer, wobei der Vektor würde initialisieren "automat "?). Z.B. initialisieren Ihre Vektor wie folgt aus:

int N = 4; 
Vector<LinkedList<Integer>> adj = new Vector<>(N); // N here isn't really needed, but it sets the initial capacity of the vector 
for (int i = 0; i < 4; i++) { 
    ajd.add(new LinkedList<>()); 
} 

Auch als Turing85 darauf hingewiesen, sollten Sie ArrayList verwenden, wenn Sie die Synchronisierung nicht brauchen.

Verwandte Themen