Miten lajitellalinkitetty lista Java

linkitetty lista on yksi tärkeimmistä tyyppisiä tietorakenteita ohjelmoinnin maailmassa.Se on järjestely, solmuja, joka sisältää sekä data- ja viittaukset osoittavat seuraavaan solmuun.Lajitella linkitetty lista Java, siellä on linkitetty lista luokka, joka toimii Kokoelmat puitteissa, joka toteuttaa algoritmeja kuten lajittelua.

Lajittelu Linked Luettelo Java

  1. toteaa linkitetyn listan luomalla uuden LinkedList objekti ja määrittämällä sen LinkedList muuttuja.LinkedList perii yleinen luettelo luokan, joten kaikki menetelmä, joka hyväksyy Luettelo hyväksyy myös LinkedList esine.
    "" LinkedList l = uusi LinkedList (); ""

  2. Lisää esineitä samaa tyyppiä (kuten kokonaislukuja) luetteloon.Nämä voivat olla esineitä tahansa, mutta jotta lajitella linkitetty lista, niiden pitäisi olla kaikkien samaa tyyppiä.

  3. Käytä List.addFirst tavan lisätä uusia esineitä listan alkuun, että mitä ikinä esineet lisäät on päinvastaisessa järjestyksessä.Jos haluat lisätä ne listan loppuun, käytä Li

    st.addLast menetelmää. "" List.addFirst (1);
    list.addFirst (3);
    list.addFirst (2); ""

  4. Käytä Iterator iteroida yli luetteloon, ja tulostaa ne ennen ja jälkeenpäin mitä järjestys tekee."" For (Iterator i = list.iterator (), i.hasNext ();) {
    System.out.println (i.next ());
    } ""

Lajittelu käyttäminen Oletus ja Custom Comparators

  1. järjestää luettelon kanssa oletuksena vertailuryhmässä.Vertailuryhmässä on esine, joka vertaa kahta esineitä.Oletuksena vertailuryhmässä objekti käyttää vähemmän kuin operaattori, joten lista lajitellaan nousevassa järjestyksessä.Voit lajitella luettelon, käytä Collections.sort staattista metodia. "" Collections.sort (luettelo); ""

  2. järjestää luettelon mukautetun vertailuryhmässä kirjoittamalla luokka, joka toteuttaa vertailuryhmässä käyttöliittymä ja siirtyy sen esimerkiksiargumenttina lajitella.Luokka, joka toteuttaa vertailuryhmässä vain on toteuttaa yhtä menetelmää "verrata.""" Public class GreaterThan toteuttaa Comparator {Override
    public int verrata (Object arg0, Object arg1) {
    int x = (kokonaisluku) arg0;
    int y = (kokonaisluku) arg1;
    jos (x & gt; y) {
    paluu -1;
    } else if (x == y) {
    return 0;
    } else {
    tuotto 1;
    }
    }} ""

  3. Käytä puhelun Collections.sort johtamalla uusi oikeusasteen GreaterThan kuin toinen argumentti.Koska esineitä, jotka ovat suurempia lajitellaan ensin, Luetteloa lajitellaan laskevaan järjestykseen sijasta nousevassa järjestyksessä.Vaihtoehtona, jos olet lajittelun luettelo esineitä mukautetun luokan olet kirjoittanut itse, että luokka voi toteuttaa Vertailukelpoinen rajapinta sijaan käyttää erillistä Comparator luokka. "" Collections.sort (luettelo, uusi GreaterThan ()); ""

vihjeitä & amp;Varoitukset

  • On ongelmallista käyttää kokonaisluku iteroida silmukan ja List.size () menetelmä.Iteroimalla yli linkitetty lista on laskennallisesti kallis toimenpide.Kun indeksin avulla operaattori (kuten L [2]), niin kuin mikä joukko, Java on iteroida yli luettelossa, kunnes se saa indeksoida 2. pieni luetteloita, tämä ei ole ongelma, mutta mitään suurempaa, käyttäenindeksi operaattori iteroida tulee hyvin resursseja kallista.
  • Sillä ei ole väliä kuinka List esine on toteutettu, koska LinkedList toteuttaa samassa käyttöliittymässä.
  • vertaa menetelmä tulisi palauttaa -1 jos arg0 lajitellaan ennen arg1, 0 jos se tulisi lajitella tasapuolisesti ja 1 jos arg1 lajitellaan ennen arg0.
  • iteraattori esine, varmistetaan, että jokainen solmu luettelo on käynyt vain kerran.Tämä on tärkeää muistaa, kun vierailevat solmut tarpeettomasti voidaan väärinkäyttää tietorakenteita siihen pisteeseen, että ohjelma tuskin ajaa.
796
0
1
Java Ohjelmointi