Ero luettelon ja joukon välillä

Avainero - luettelo vs. Aseta
 

Useimmat ohjelmointikielet käyttävät taulukkoja samantyyppisen datajoukon tallentamiseen. Yksi taulukkojen suuri haitta on, että kun taulukon koko on ilmoitettu, sitä ei voida muuttaa. Jos ohjelmoija haluaa tallentaa arvot, jotka ylittävät taulukon koon, hänen tulee luoda uusi taulukko ja kopioida olemassa olevat elementit uuteen taulukkoon. Näissä tilanteissa kokoelmia voidaan käyttää. Elementtejä voidaan lisätä, poistaa elementtejä ja monia muita toimintoja kokoelmien tuella. Ohjelmointikielillä, kuten Java, on saatavana erityyppisiä kokoelmia. Lista ja Joukko ovat kokoelmahierarkian rajapintoja. Muiden rajapintojen perusrajapinta on Collection. avainero Listan ja Setin välillä on se Lista tukee saman elementin tallentamista useita kertoja, kun taas Set ei tue saman elementin tallentamista useita kertoja. Siksi joukko ei salli kopiointia.

SISÄLLYS

1. Yleiskatsaus ja keskeiset erot
2. Mikä on luettelo
3. Mikä on asetettu
4. Luettelon ja ryhmän yhtäläisyydet
5. Vertailu rinnakkain - lista vs aseta taulukkomuodossa
6. Yhteenveto

Mikä on Lista?

Luettelo on käyttöliittymä, joka laajentaa Collection-käyttöliittymää. Kokoelmarajapinnassa on useita menetelmiä. Lisäämismenetelmä auttaa lisäämään elementin. 'Poista menetelmä' on poistaa elementti. On 'addAll-menetelmä', jolla voidaan lisätä useita elementtejä, ja 'removeAll-menetelmä', jotta elementit voidaan poistaa kokoelmasta. Sisältää -menetelmä auttaa selvittämään, onko luettelossa tietty objekti. Sisältää 'kaikki' on selvittää, onko joukko esineitä kokoelmassa. Iteraattorimenetelmää käytetään silmukoimaan luettelon kohteita. Kun Lista laajentaa kokoelmaa, kaikki keräysmenetelmät kuuluvat luetteloon. Lista sisältää muita menetelmiä kuin get and set. Ohjelmoija voi saada arvon tietyssä hakemistossa käyttämällä get-menetelmää. Ohjelmoija voi asettaa arvon tietylle indeksille asetettua menetelmää käyttämällä. 'IndexOf' käytetään elementin hakemiston löytämiseen.

Luettelossa toiminnot voidaan suorittaa sijainnin mukaan. Ohjelmoija voi tarjota tietoelementin, joka lisätään hakemistoon. Joten se lisätään tiettyyn hakemistoon. Jos ohjelmoija ei anna indeksiä, elementti lisätään luettelon loppuun. Se ylläpitää myös lisättyä järjestystä. Jos elementti 1 lisätään ja sitten elementti 2 lisätään, niin elementti 1 on ennen elementtiä 2.

Kuva 01: Lista ja joukko

ArrayList, LinkedList, Vector ovat joitain luokkia, jotka toteuttavat Listan. ArrayListissä elementin käyttö on nopeaa, mutta lisääminen ja poistaminen on alhaisempaa. ArrayList ei ole langansuojattu. Saman ArrayListin käyttäminen useista säikeistä ei ehkä anna samaa tulosta. LinkedListissä elementit on linkitetty sekä taaksepäin että eteenpäin. Elementtien lisääminen ja poistaminen LinkedListin avulla on nopeampaa kuin ArrayList. LinkedList toteuttaa sekä luettelon että jonon molemmat. Vector on samanlainen kuin ArrayList, mutta se on kulutuspinta-turvallinen, koska kaikki menetelmät synkronoidaan.

Mikä on asetettu?

Set on käyttöliittymä, joka laajentaa Collection-käyttöliittymää. Kun Set-käyttöliittymä laajentaa kokoelmaa, kaikki keräysmenetelmät kuuluvat myös joukkoon. Sarja ei tue kopiointiarvoja. Siksi ohjelmoija ei voi tallentaa samaa elementtiä kahdesti. Se ylläpitää ainutlaatuista joukko elementtejä. SortedSet-käyttöliittymä laajentaa Set-käyttöliittymää. SortedSet ylläpitää elementtejä lajittelujärjestyksessä. NavigableSet-käyttöliittymä laajentaa SortedSet-aluetta. NavigableSet tarjoaa navigointimenetelmiä, kuten ala-, lattia-, katto- jne.

HashSet, LinkedHashSet ja TreeSet ovat joitain luokkia, jotka toteuttavat Set-käyttöliittymän. HashSet työkalut Aseta käyttöliittymä. Se ei yllä lisättyä järjestystä. Jos arvot lisätään a, x, b, se voi tallentua muodossa x, a, b. LinkedSet ylläpitää lisättyä järjestystä. Jos elementit asetetaan järjestyksessä a, x, b, tallennusjärjestys on a, x, b. TreeSet toteuttaa Set ja NavigableSet. Se ei yllä lisäysjärjestystä, mutta tallentaa elementit lajiteltuun järjestykseen. Jos lisätty järjestys on a, c, b, niin elementit tallennetaan a, b, c. Kaikissa HashSetissä, LinkedHashSetissä ja TreeSetissä ei ole päällekkäisiä elementtejä.

Mitkä ovat samankaltaisuudet luettelon ja joukon välillä?

  • Sekä List- että Set-rajapinnat laajentavat keräysrajapintaa.
  • Sekä List- että Set-tukitoiminnot, kuten elementtien lisääminen ja poistaminen.

Mikä on ero luettelon ja joukon välillä?

Lista vs Aseta

Listarajapinta on kokoelman alaliittymä, joka sisältää menetelmiä suorittaa toimintoja, kuten lisätä, poistaa hakemiston perusteella. Set Interface on kokoelman alaliittymä, joka sisältää menetelmiä toimintojen suorittamiseksi, kuten elementtien lisääminen, poistaminen, säilyttäen samalla ainutlaatuiset elementit.
 Luokat
ArrayList, Vector ja LinkedList ovat luokkia, jotka toteuttavat Lista-käyttöliittymän. HashSet, LinkedHashSet ja TreeSet ovat luokkia, jotka toteuttavat Set-rajapinnan.
Elementin päällekkäisyys
Lista tukee elementtien päällekkäisyyttä. Sarja ei tue elementtien päällekkäisyyttä. Elementit ovat ainutlaatuisia.

Yhteenveto - Lista vs Aseta

Kokoelmia käytetään elementtien dynaamiseen säilyttämiseen. Ohjelmointikielet, kuten Java, tarjoavat Collection-käyttöliittymän. Lista ja Joukko ovat kaksi käyttöliittymää, jotka kuuluvat kokoelmarajapintaan. Molemmat rajapinnat laajentavat kokoelmaa. Tässä artikkelissa käsiteltiin luettelon ja ryhmän eroa. Avainero Listan ja Asetuksen välillä on, että Lista tukee saman elementin tallentamista useita kertoja, kun taas Set ei tue saman elementin tallentamista useita kertoja. Setti ylläpitää aina ainutlaatuisia elementtejä.

Viite:

1.Piste, oppaat. ”Java-kokoelmat.”, Opetusohjelmat, 8. tammikuuta 2018. Saatavilla täältä