Jak třídit propojený seznam v jazyce Java

Řazení propojeného seznamu v jazyce Java.

Třídit propojený seznam v jazyce Java

Krok 1

Deklarujte propojený seznam vytvořením nového objektu LinkedList a přiřazením k proměnné LinkedList. LinkedList dědí z obecné třídy seznamu, takže jakýkoli způsob, který seznam přijímá, bude také akceptován objektem LinkedList.

"" LinkedList l = nový LinkedList (); ""

Krok 2

Do seznamu přidejte objekty stejného typu (například celá čísla). Mohou to být objekty jakéhokoli druhu, ale aby mohly třídit propojený seznam, musí být všechny stejné.

Krok 3

Použijte metodu List.addFirst pro vkládání nových objektů na začátek seznamu, takže objekty, které přidáte, budou v opačném pořadí. Pokud je chcete přidat na konec seznamu, použijte metodu List.addLast.

"list.addFirst (1); list.addFirst (3); list.addFirst (2);"

Krok 4

Použijte iterátor pro opakování seznamu a vytiskněte jej před a po prohlédnutí způsobu třídění.

"" pro (Iterator i = list.iterator (); i.hasNext ();) {System.out.println (i.next ());} "

Třídit pomocí výchozích a vlastních komparátorů

Krok 1

Třídit seznam s výchozím parametrem comparer. Komparátor je objekt, který porovnává dva objekty. Výchozí objekt komparátoru používá operátor menší než, takže seznam bude roztříděn ve vzestupném pořadí. Chcete-li třídit seznam, použijte statickou metodu Collections.sort.

"" Collections.sort (seznam); ""

Krok 2

Třídit seznam s vlastním komparátorem tak, že vytvoříte třídu, která implementuje srovnávací rozhraní a předá instanci jako argument ke třídě. Třída, která implementuje komparátor, prostě musí implementovat jednoduchou metodu porovnání.

"public class GreaterThan implementuje komparátor else if (x == y) {return 0;} else {return 1;}}}" "

Krok 3

Použijte volání Collections.sort podáním nové instance z GreaterThan jako druhý argument. Vzhledem k tomu, že objekty, které jsou větší, budou roztříděny dříve v seznamu, seznam bude seřazen v sestupném pořadí místo vzestupu. Případně, pokud chcete objednat seznam objektů z vlastní třídy, kterou jste napsali sami, může tato třída implementovat srovnatelné rozhraní namísto použití samostatné třídy Comparator.

"" Collections.sort (seznam, nový GreaterThan ()); ""