Pracuję więc nad funkcją szukania szerokości do pierwszego dla programu, nad którym pracuję dla szkoły, i kiedy przechodzę przez krawędzie wychodzące dla danego węzła, z racji tego, w jaki sposób przechodzę przez moje możliwe krawędzie , wygląda mniej więcej tak:Jak mogę posortować ArrayList <ArrayList <String>>?
[[A, 1], [D, 1], [C, 2], [D, 2]]
Ale to, co naprawdę chcę to:
[[A, 1], [C, 2], [D, 1], [D, 2]]
Gdzie pierwszy indeks pary to nazwa węzła, że punkty edge oraz drugi indeks to etykieta krawędzi. Zasadniczo chcę przejść przez te krawędzie alfabetycznie, najpierw przez nazwę węzła, a następnie przez nazwę etykiety, ale nie jestem pewien, jak to zrobić, ponieważ Collections.sort() nie działa dla 2D ArrayList. Jakieś wskazówki/pomysły dotyczące dobrej metody sortowania tego? Dziękuję wszystkim!
EDIT: używam JRE 1.7 dla tego zadania, a nie 1,8
'[[A, 1], [D, 1], [C, 2], [D, 2]] 'nie jest poprawnym przykładem dla' ArrayList> ' Można użyć' .stream(). Sorted() 'aby sortować według porządku naturalnego lub nawet zdefiniować custom 'Comparator' –
Możesz użyć HashMap zamiast ArrayList ... – RoiEX
RoiEX, nie może używać HashMap, ponieważ może mieć klucz o różnych wartościach lub musi być HashMap ... to tworzy dość skomplikowaną strukturę na coś prostego. –
jeorfevre