Zawartość
- Instrukcje
- Sortuj połączoną listę w Javie
- Sortuj za pomocą domyślnych i niestandardowych komparatorów
- Jak
- Uwaga
Jak zorganizować połączoną listę w Javie. Zamknięta lista jest jednym z głównych typów struktur danych w świecie programowania. Jest to organizacja węzłów, która zawiera dane i odniesienia wskazujące na następny węzeł. Aby posortować połączoną listę w Javie, istnieje klasa list, która współpracuje ze strukturą Collections, która implementuje algorytmy jako porządek.
Instrukcje
Organizacja połączonej listy w Javie (obraz przesłuchania przez danimages z Fotolia.com)-
Zadeklaruj listę połączoną, tworząc nowy obiekt LinkedList i przypisując zmienną LinkedList. Lista LinkedList pochodzi z ogólnej klasy List, więc każda metoda, która akceptuje List, również zostanie zaakceptowana przez obiekt LinkedList. „” LinkedList l = nowy LinkedList (); ”„
-
Dodaj obiekty tego samego typu (takie jak liczby całkowite) do listy. Mogą to być obiekty dowolnego rodzaju, ale aby posortować połączoną listę, wszystkie muszą być tego samego typu.
-
Użyj metody List.addFirst, aby wstawić nowe obiekty na górze listy, tak aby wszystkie dodane obiekty były w odwrotnej kolejności. Jeśli chcesz dodać je do końca listy, użyj metody List.addLast. "" list.addFirst (1); list.addFirst (3); list.addFirst (2); "
-
Użyj iteratora, aby przeglądać listę i drukować ją przed i po zobaczeniu, co robi metoda sortowania. „” dla (Iterator i = list.iterator (); i.hasNext ();) {System.out.println (i.next ());} ”
Sortuj połączoną listę w Javie
-
Sortuj listę za pomocą domyślnego komparatora. Komparator to obiekt, który porównuje dwa obiekty. Domyślny obiekt komparatora używa mniejszego operatora, więc lista jest uporządkowana w porządku rosnącym. Aby posortować listę, użyj statycznej metody Collections.sort. "" Collections.sort (lista); ""
-
y) {return -1; "> Zamień listę za pomocą niestandardowego porównania, pisząc klasę, która implementuje interfejs porównania i przekazując ją do instancji jako argument porządkujący Klasa implementująca komparator musi tylko implementować prostą „klasa publiczna GreaterThan implementuje komparator else if (x == y) {return 0;} else {return 1;}}}”
-
Użyj wywołania do Collections.sort, przekazując nowe wystąpienie GreaterThan jako drugi argument. Ponieważ obiekty, które są większe, będą przed innymi, lista zostanie posortowana w porządku malejącym zamiast kolejności rosnącej. Alternatywnie, jeśli posortujesz listę obiektów z niestandardowej klasy, którą sam wpisałeś, ta klasa może zaimplementować interfejs Porównywalny zamiast używać oddzielnej klasy Komparatora. "" Collections.sort (lista, nowy GreaterThan ()); ""
Sortuj za pomocą domyślnych i niestandardowych komparatorów
Jak
- Problemem jest użycie liczby całkowitej do iteracji w obwodzie i metody List.size (). Iterowanie zamkniętej listy jest kosztowną operacją obliczeniową. Używając operatora indeksu (jak l [2]), jak w każdym poleceniu, Java musi iterować po liście, aż osiągnie indeks 2. W przypadku małych list jest to jednak problem z czymś dużym, użycie operatora indeksu do iteracji zmienia się w coś, co wymaga dużo zasobów.
- Bez względu na sposób implementacji obiektu List, ponieważ LinkedList implementuje ten sam interfejs.
- Metoda porównania powinna powrócić do -1, jeśli arg0 jest uporządkowane przed arg1, 0, jeśli jest uporządkowane równo, i 1, jeśli arg1 jest uporządkowane przed arg0.
Uwaga
- Obiekt iteratora zapewnia, że każdy węzeł na liście odwiedza tylko raz. Jest to ważne, aby pamiętać, ponieważ odwiedzanie nas bez potrzeby może nadużywać struktur danych do punktu, w którym program działa nieprawidłowo.