Ero Java-luettelon ja joukon välillä

Kirjoittaja: Laura McKinney
Luomispäivä: 2 Huhtikuu 2021
Päivityspäivä: 1 Heinäkuu 2024
Anonim
Ero Java-luettelon ja joukon välillä - Tekniikka
Ero Java-luettelon ja joukon välillä - Tekniikka

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.

  1. Vertailutaulukko
  2. Määritelmä
  3. Keskeiset erot
  4. johtopäätös

Vertailutaulukko

Vertailun perusteetLista Sarja
perustiedotLista 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äminenLuettelossa voi olla päällekkäisiä elementtejä.Lisää () -menetelmä palauttaa väärän, jos yrität lisätä päällekkäisiä elementtejä.
menetelmätKokoelmassa 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.

  1. 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ä.
  2. 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.
  3. 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ä.
  4. 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ää