Vorrei sapere come creare un elenco collegato di elenchi collegati. Inoltre, sarebbe utile se il predefinito LinkedList
(classe da Java) e i suoi metodi sono utilizzati per la definizione e per altre operazioni add, get, listIterating.Elenco collegato di elenchi collegati in Java
risposta
È possibile inserire qualsiasi oggetto in un elenco, incluso un altro elenco.
LinkedList<LinkedList<YourClass>> list = new LinkedList<LinkedList<YourClass>>();
è una LinkedList
di LinkedList
s di YourClass
oggetti. Può anche essere scritta in modo semplificato since Java 7:
LinkedList<LinkedList<YourClass>> list = new LinkedList<>();
molto semplici esempi di manipolazione di una tale lista:
È quindi necessario creare ogni sottoelenco, qui l'aggiunta di un unico elenco secondario:
list.add(new LinkedList<YourClass>());
quindi creare gli oggetti di contenuto:
list.get(sublistIndex).add(new YourClass());
È quindi possibile scorrere su di esso come questo (voci sottoliste sono raggruppati per sottolista):
for(LinkedList<YourClass> sublist : list) {
for(YourClass o : sublist) {
// your code here
}
}
Se si desidera aggiungere metodi specifici per questa lista di liste, è possibile creare una sottoclasse di LinkedList
(o List
o qualsiasi altra sottoclasse List
oppure è possibile creare una classe con l'elenco di elenchi come campo e aggiungere metodi per manipolare l'elenco.
e come iterare su questo elenco di lista ?? – roottraveller
@roottraveller Aggiunto un semplice esempio :) Ci sono molti modi in cui ciò può essere fatto, a seconda di cosa si vuole fare. – Autar
LinkedList<LinkedList<YourClass>> yourList = new LinkedList<LinkedList<YourClass>>();
Come la dichiarazione. Per aggiungere un altro lista collegata (alla fine per impostazione predefinita) si farebbe
yourList.add(new LinkedList<YourClass>());
Per aggiungere un elemento al diciamo la seconda lista collegata in serie:
yourList.get(1).add(new YourClass());
Bene ho fatto questo codice e ho capito bene
java.util.LinkedList mainlist = new java.util.LinkedList();
java.util.LinkedList sublist1 = new java.util.LinkedList();
sublist1.add(object1);
sublist1.add(object2);
sublist1.add(object3);
java.util.LinkedList sublist2=new java.util.LinkedList();
sublist2.add(1);
sublist2.add(2);
mainlist.add(sublist1);
mainlist.add(sublist2);
// To retrieve the sublist1 from mainlist...........
java.util.LinkedList temp = (java.util.LinkedList)mainlist.get(0);
Qui variabile mainlist è Li nkedList di LinkedLists e variabile temperatura contiene il valore del primo elenco memorizzato cioè sublist1 ..
Si può anche semplificare l'accesso alle liste secondarie, per esempio utilizzando
final List<List<String>> lists = new LinkedList<List<String>>() {
@Override
public List<String> get(final int index) {
while (index >= size()) {
add(new LinkedList<>());
}
return super.get(index);
}
};
Questo codice aggiunge automaticamente i nuovi LinkedList
s alla lista esterna. Con questo codice è possibile aggiungere facilmente singoli valori:
lists.get(2).add("Foo");
È anche ok, se ottengo il codice della classe di elenco collegato definito dall'utente con i metodi di base. Grazie –
Non hai bisogno di commentare il tuo post in questo modo.Puoi modificare la tua domanda originale in qualsiasi momento. – BlackVegetable