Jak sortować połączoną listę w Javie
Sortuj połączoną listę w Javie
Krok 1
Deklaracja połączonej listy poprzez utworzenie nowego obiektu LinkedList i przypisanie go do zmiennej LinkedList. LinkedList dziedziczy z ogólnej klasy List, więc każda metoda akceptowana przez List również zostanie zaakceptowana przez obiekt LinkedList.
"" LinkedList l = new LinkedList (); ""
Krok 2
Dodaj obiekty tego samego typu (takie jak liczby całkowite) do listy. Mogą to być obiekty dowolnego rodzaju, ale aby móc sortować połączoną listę, wszystkie muszą być tego samego typu.
Krok 3
Użyj metody List.addFirst do wstawienia nowych obiektów na początku listy, aby dodawane 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); ""
Krok 4
Użyj iteratora do iteracji na liście i wydrukuj go przed i po, aby zobaczyć, co robi metoda sortowania.
"" dla (Iterator i = list.iterator (); i.hasNext ();) {System.out.println (i.next ());} ""
Sortuj przy użyciu domyślnych i niestandardowych komparatorów
Krok 1
Posortuj listę za pomocą domyślnego porównywalnika. Komparator jest obiektem, który porównuje dwa obiekty. Domyślny obiekt porównawczy używa operatora mniejszego niż, więc lista zostanie posortowana w porządku rosnącym. Aby posortować listę, użyj statycznej metody Collections.sort.
"" Collections.sort (list); ""
Krok 2
Posortuj listę za pomocą niestandardowego komparatora, pisząc klasę implementującą interfejs porównania i przekazującą jej instancję jako argument do sortowania. Klasa implementująca komparator musi po prostu wdrożyć prostą metodę "porównywania".
"" klasa publiczna GreaterThan implementuje Komparator jeszcze, jeśli (x == y) {return 0;} else {return 1;}}} ""
Krok 3
Użyj wywołania Collections.sort, przekazując nową instancję GreaterThan jako drugi argument. Ponieważ obiekty, które są większe, zostaną posortowane wcześniej na liście, lista zostanie posortowana w kolejności malejącej zamiast rosnącej. Ewentualnie, jeśli zamierzasz zamówić listę obiektów z własnej klasy niestandardowej, ta klasa może implementować interfejs porównywalny zamiast używać oddzielnej klasy Komparatora.
"" Collections.sort (list, new GreaterThan ()); ""