Jak třídit propojený seznam 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 ()); ""