Quindi sto lavorando a una funzione di ricerca di Breadth-First per un programma a cui sto lavorando per la scuola, e quando passo attraverso i bordi in uscita per un dato nodo, in virtù di come sto passando attraverso i miei possibili margini , sembra qualcosa di simile:Come posso ordinare un ArrayList <ArrayList <String>>?
[[A, 1], [D, 1], [C, 2], [D, 2]]
Ma quello che voglio veramente è questo:
[[A, 1], [C, 2], [D, 1], [D, 2]]
Dove il primo indice di una coppia è il nome del nodo che i punti di bordo a, e la secondo indice è l'etichetta per il bordo. Essenzialmente voglio passare attraverso questi bordi in ordine alfabetico, prima per nome nodo, poi per nome etichetta, ma non sono sicuro di come farlo, dal momento che Collections.sort() non funziona per un ArrayList 2D. Qualche suggerimento/idea su un buon metodo per ordinare questo? Grazie a tutti!
EDIT: Sto usando JRE 1.7 per questo incarico, non 1.8
'[[A, 1], [D, 1], [C, 2], [D, 2]] 'is non è un esempio valido per' ArrayList> ' Puoi usare' .stream(). Sorted() 'per ordinare per ordine naturale o anche definire un custom 'Comparator' –
Puoi usare una HashMap invece di una ArrayList ... – RoiEX
RoiEX, non posso usare HashMap dato che può avere una chiave che ha valori diversi o deve essere una HashMap ... ciò rende una struttura abbastanza complicata per qualcosa di semplice. –
jeorfevre