Kuidas sorteerida ahelloend Java

ahelloend on üks peamisi tüüpi andmestruktuurid programmiperioodil maailma.See on kokkulepe, sõlmede, mis sisaldab nii andmete ja viited osutades järgmise sõlme.Sortimiseks ahelloend Java, seal on seotud nimekirja klassi, mis töötab koos Kollektsioonid raamistik, mis rakendab algoritme sorteerimine.

Sorteeri ahelloend Java

  1. tunnistada seotud nimekirja, luues uusi LinkedList objekti ja omistades kuni LinkedList muutuja.LinkedList pärib üldise loetelu klassi, nii et mis tahes meetodit, mis aktsepteerib loetelu aktsepteerib ka LinkedList objekti.
    "" LinkedList l = new LinkedList (); ""

  2. Lisa objektide sama tüüpi (nt täisarvud) nimekirja.Need võivad olla esemed tahes liiki, kuid selleks, et järjestada ahelloend, nad peaksid olema kõik sama tüüpi.

  3. Kasutage List.addFirst meetod lisada uusi objekte alguses nimekirja, nii et mis iganes objektide lisate vastupidises järjekorras.Kui soovite lisada need nimekirja lõppu, kasutada List.addLast meetod. "" List.addFirst (1);
    list.addFirst (3);
    list.addFirst (2); ""

  4. Kasutage Iterator itereerima üle nimekirja ja printida neid enne ja pärastki, et näha, mida sorteerimismeetod teeb."" jaoks (Iterator i = list.iterator (); i.hasNext ();) {
    System.out.println (i.next ());
    } ""

Sorteeri Kasutades Vaikimisi ja Custom Komparaatoritelt

  1. loendi sortimiseks vaikimisi võrdlevates.Komparaator on objekt, mis võrdleb kahe objekti.Vaikimisi võrdlevates objekti kasutab vähem kui operaator, nii et nimekirja sorteerida kasvavas järjekorras.Sorteerimiseks, kasutada Collections.sort staatiline meetod. "" Collections.sort (nimekiri); ""

  2. loendi sortimiseks custom võrdlevates kirjutades klassi, mis rakendab võrdluseks liides ja läheb siis astmeargumendina sorteerida.Klassi mis rakendab võrdlevates ainult rakendada ühtset meetodit "võrrelda.""" public class GreaterThan rakendab Komparaator {Override
    avaliku int võrrelda (Object arg0, objekt arg1) {
    int x = (Integer) arg0;
    int y = (Integer) arg1;
    kui (x & gt; y) {
    tagastamise -1;
    } else if (x == y) {
    return 0;
    } else {
    tagastamise 1;
    }
    }} ""

  3. kasutamine kõne Collections.sort sooritades uus astme GreaterThan teise argumendina.Kuna objekte, mis on suuremad on järjestatud esmalt nimekirjas sorteeritakse kahanevas järjekorras asemel tõusvas järjekorras.Alternatiivina, kui sa sorteerimine objektide nimekirja custom klassi olete kirjutanud ise, et klassis saab rakendada Võrreldav liidese asemel eraldi Komparaator klassi. "" Collections.sort (nimekirja, uus GreaterThan ()); ""

Tips & amp;Hoiatused

  • See on problemaatiline kasutada täisarv itereerima silmus ja List.size () meetod.Iterating üle ahelloend on arvutuslikult kallis operatsioon.Kui indeksi abil operaator (nagu l [2]), kui teil oleks array, Java peab Käi nimekirja enne, kui see jõuab indeks 2. Väikeste nimekirjad, see ei ole probleem, kuid midagi suuremat, kasutadesIndeksi operaator itereerima muutub väga ressursi kulukas.
  • See ei ole tähtis, kuidas nimekirja objekt on rakendatud, sest LinkedList rakendab sama liides.
  • Võrdle meetod peaks tagasi -1, kui arg0 tuleks järjestatud enne arg1, 0, kui see tuleb järjestatud võrdselt ja 1 kui arg1 tuleks järjestatud enne arg0.
  • Iteraatoril objekti tagab, et iga sõlme nimekirja külastanud ainult üks kord.See on oluline meeles pidada, kui külastate sõlmed asjatult ei kuritarvita andmestruktuurid punkt, et teie programm vaevalt joosta.
206
0
1
Java Programming