Hoe maak je een gelinkte lijst in Java Sorteer

een gekoppelde lijst is een van de belangrijkste types van datastructuren in de programmeringswereld.Het is een rangschikking van knooppunten die zowel gegevens als referenties wijzen op de volgende knoop bevat.Om een ​​gekoppelde lijst in Java te sorteren, is er een gekoppelde lijst klasse die werkt met de collecties raamwerk dat algoritmes implementeert, zoals het sorteren.

Sorteer een gelinkte lijst in Java

  1. Verklaar de gelinkte lijst door het creëren van een nieuwe LinkedList object en toe te wijzen aan een LinkedList variabele.LinkedList erft van de generieke List klasse, dus elke methode die een lijst accepteert ook instemmen met een LinkedList object.
    "" LinkedList l = new LinkedList (); ""

  2. objecten van hetzelfde type (zoals integers) aan de lijst toevoegen.Deze kunnen voorwerpen van elke soort, maar om een ​​gekoppelde lijst sorteren, moeten ze van hetzelfde type zijn.

  3. Gebruik de List.addFirst methode om nieuwe objecten te voegen aan het begin van de l

    ijst, dus dat wat objecten u toevoegt zal in de omgekeerde volgorde.Als je ze wilt toevoegen aan het einde van de lijst, gebruik List.addLast methode "" list.addFirst (1).;
    list.addFirst (3);
    list.addFirst (2); ""

  4. Gebruik een Iterator om itereren over de lijst en print ze voor en daarna om te zien wat het soort methode doet."" voor (Iterator i = list.iterator (); i.hasNext ();) {
    System.out.println (i.next ());
    } ""

sorteren Met behulp van standaard en op maat gemaakte Comparators

  1. Sorteer de lijst met de standaard vergelijker.Een vergelijker is een object dat twee objecten vergelijken.De standaard vergelijker object gebruikt het minder dan operator, zodat de lijst wordt in oplopende volgorde gesorteerd.Om de lijst te sorteren, gebruikt u de Collections.sort statische methode "" Collections.sort (lijst); "."

  2. Sorteer de lijst met een aangepaste vergelijker door het schrijven van een klasse die de vergelijker interface implementeert en stuurt het een exemplaarals argument om te sorteren.De klasse die alleen vergelijker implementeert moet de één methode uit te voeren "te vergelijken.""" openbare klasse greaterthan implementeert Comparator {@ Override
    public int vergelijken (Object arg0, Object arg1) {
    int x = (Integer) arg0;
    int y = (Integer) arg1;
    if (x & gt; y) {
    return -1;
    } else if (x == y) {
    return 0;
    } else {
    return 1;

    }}} ""

  3. Gebruik de oproep om Collections.sort door het passeren van een nieuwe instantie naar greaterthan als tweede argument.Aangezien voorwerpen die groter zal eerst worden opgelost, zal de lijst worden gesorteerd in aflopende volgorde in plaats van oplopende volgorde.Als alternatief, als je het sorteren van een lijst van objecten van een aangepaste klasse die u hebt zelf geschreven, die klasse kan de vergelijkbare-interface implementeren in plaats van een aparte Comparator klasse. "" Collections.sort (lijst, nieuwe greaterthan ()); ""

Tips & amp;Waarschuwingen

  • Het is problematisch om een ​​een integer gebruiken om te herhalen voor de lus en de methode List.size ().Itereren over een gekoppelde lijst is een computationeel dure operatie.Bij gebruik van de index operator (zoals l [2]) als met een array Java te itereren over de lijst totdat het indexeren 2. Voor kleine lijsten is dit geen probleem, maar met iets grotere behulpde index operator herhalen wordt zeer resource-duur.
  • Het maakt niet uit hoe het object List wordt uitgevoerd, omdat LinkedList implementeert dezelfde interface.
  • Het vergelijken methode moet terugkeren -1 als arg0 moeten gesorteerd worden voordat arg1, 0 als het gelijk en 1 moet worden opgelost als arg1 gesorteerd moeten worden alvorens arg0.
  • De iterator object zorgt ervoor dat elk knooppunt in de lijst slechts één keer wordt bezocht.Dit is een belangrijk ding om te onthouden, zoals een bezoek aan nodes onnodig kunnen datastructuren misbruiken tot het punt dat je programma nauwelijks zal lopen.
321
0
1
Programmeren In Java