Jak sortować połączoną listę w Javie

Posortuj listę połączonych 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 ()); ""