Ero Java-luettelon ja joukon välillä
![Ero Java-luettelon ja joukon välillä - Tekniikka Ero Java-luettelon ja joukon välillä - Tekniikka](https://a.fondoperlaterra.org/technology-differences/difference-between-list-and-set-in-java.jpg)
Sisältö
Luettelo- ja Set-käyttöliittymä laajentaa kokoelmaa. Molemmat ylläpitävät elementtien tai esineiden kokoelmaa. Mutta suurin ero, joka erottaa heidät toisistaan, on Lista on tilattujen elementtien kokoelma, elementit lisätään tai poistetaan tai niihin päästään hakemistomuuttujan avulla. Toisaalta Set on kokoelma esineitä, joissa kokoelma ei salli päällekkäisten elementtien käyttöä siinä. Tutkitaan vielä joitain eroja List- ja Set-rajapintojen välillä alla olevan vertailutaulun avulla.
- Vertailutaulukko
- Määritelmä
- Keskeiset erot
- johtopäätös
Vertailutaulukko
Vertailun perusteet | Lista | Sarja |
---|---|---|
perustiedot | Lista ylläpitää luetteloon tallennettujen elementtien järjestystä. | Sarja ei ylläpitä erityisen lisäysjärjestystä, mutta Linked HashSet ylläpitää lisäysjärjestystä. |
jäljentäminen | Luettelossa voi olla päällekkäisiä elementtejä. | Lisää () -menetelmä palauttaa väärän, jos yrität lisätä päällekkäisiä elementtejä. |
menetelmät | Kokoelmassa määriteltyjen menetelmien lisäksi List määrittelee joitain omia menetelmiään. | Sarja ei määrittele ylimääräistä menetelmää. |
Toteutus | Luettelon toteuttavat ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack. | Asetuksen toteuttavat HashSet, LinkedHashSet, EnumSet, TreeSet, CopyOnWriteArraySet. |
Määritelmä luettelo
Listarajapinta laajentaa keräysrajapintaa. Lista on tilattu kokoelma elementtejä tai esineitä. Toisin kuin Set, luettelo voi sisältää päällekkäisiä elementtejä. Kokoelmalistassa määriteltyjen menetelmien lisäksi määrittelee joitain omia menetelmiä, kuten hakemistopohjainen get () ja set () -menetelmä. Kokoelmasta perineet lisäys- () ja poista () -menetelmät, jotka lisäävät tai poistavat määritetyn elementin menetelmäargumentissa määritettyyn hakemistoon. Lista on eräänlainen taulukko, jonka koko kasvaa, kun lisäämme elementtejä luetteloon.
Lista ei määrittele mitään menetelmää luettelon hakemistoalueiden käyttämiseksi. Se määrittelee alaluettelomenetelmän (), joka palauttaa alaluettelon määritetyn alueen alkuperäisestä luettelosta. Alaluetteloon tekemäsi muutokset näkyvät myös alkuperäisessä luettelossa. Listarajapinnan toteuttavat ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack.
Määritelmä Set
Set-käyttöliittymä laajentaa Collection-käyttöliittymää. Aseta käyttöliittymä on kokoelma tai objektiryhmä, joka ei sisällä päällekkäisiä objekteja siinä. Tämä tarkoittaa, että kaksi viittausta ei voi viitata yhteen objektiin tai yksi viittaus ei voi viitata kahteen objektiin, tai ei voi olla kahta viittausta, jotka viittaavat nollaan. Elementin järjestys tai järjestys ei ole tärkeä joukko, mutta ei ole, että se kieltää tilatun joukon.
Sarjarajapinta ei määrittele mitään menetelmää Kokoelmassa määritetyn menetelmän lisäksi. Sen sijaan se rajoittaa add () - ja addall () -menetelmiä keräilyesineiden lisäämiseksi kokoelmaan. Jos yrität lisätä mitä tahansa kaksoiskappalekokoelmaa kokoelman add () -menetelmällä, se tuottaa väärän. Muuten se palaa totta. Aseta käyttöliittymä toteutetaan HashSet, LinkedHashSet, EnumSet, TreeSet, CopyOnWriteArraySet.
- Kokoelman elementtien / objektien sekvenssi ylläpidetään luettelossa, kun taas Set ei yllä elementtien järjestystä, mutta LinkedHashSet on poikkeus, joka ylläpitää lisäysjärjestystä.
- Luettelossa voi olla päällekkäisiä elementtejä, koska se tunnistaa minkä tahansa elementin indeksissään, mutta Set ei salli kopioelementtien käyttöä, koska siinä ei ole minkäänlaista hakemistotyyppistä elementtiä minkään objektin tunnistamiseksi kokoelmassa.
- Luettelo määrittelee eräitä menetelmiä omilla, Kokoelmassa määriteltyjen menetelmien lisäksi. Toisaalta, Set ei määrittele mitään omaa menetelmää, mutta se rajoittaa keräysmenetelmiä lisäämään päällekkäisiä elementtejä.
- Luettelon toteuttavat ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack -rajapinnat. Toisaalta Set toteutetaan HashSet-, LinkedHashSet-, EnumSet-, TreeSet-, CopyOnWriteArraySet-rajapintojen avulla.
johtopäätös:
Lista- ja Set-käyttöliittymän käyttö riippuu vaatimuksesta. Jos esineiden / elementtien järjestys on tärkeä, sinun on käytettävä Lista-käyttöliittymää. Jos et vaadi kopioitavia elementtejä kokoelmassasi, sinun on käytettävä Set-käyttöliittymää