Listan ja joukon välinen ero

Sisällysluettelo:

Listan ja joukon välinen ero
Listan ja joukon välinen ero

Video: Listan ja joukon välinen ero

Video: Listan ja joukon välinen ero
Video: Kauhein tapa erota 2024, Marraskuu
Anonim

Avainero – luettelo vs. sarja

Useimmat ohjelmointikielet käyttävät taulukoita samantyyppisten tietojen tallentamiseen. Yksi taulukoiden suuri haittapuoli on, että kun taulukon koko on ilmoitettu, sitä ei voi muuttaa. Jos ohjelmoija haluaa tallentaa taulukon koon ylittävät arvot, hänen tulee luoda uusi taulukko ja kopioida olemassa olevat elementit uuteen taulukkoon. Näissä tilanteissa voidaan käyttää kokoelmia. Kokoelmien tuella on mahdollista lisätä elementtejä, poistaa elementtejä ja monia muita toimintoja. Ohjelmointikielillä, kuten Java, on saatavana erilaisia kokoelmia. Lista ja Set ovat kokoelmahierarkian rajapintoja. Muiden rajapintojen perusrajapinta on Collection. Keskeinen ero Listan ja Setin välillä on, että Lista tukee saman elementin tallentamista useita kertoja, kun taas Set ei tue saman elementin tallentamista useita kertoja. Siksi joukko ei salli kopioimista.

Mikä on lista?

Lista on käyttöliittymä, joka laajentaa kokoelman käyttöliittymää. Kokoelman käyttöliittymässä on useita menetelmiä. Lisää-menetelmä auttaa elementin lisäämisessä. "Poista menetelmä" on elementin poistaminen. On olemassa "addAll-menetelmä" useiden elementtien lisäämiseen ja "removeAll-menetelmä" elementtien poistamiseen kokoelmasta. Sisältää-menetelmä auttaa selvittämään, onko tietty objekti luettelossa vai ei. 'containsAll' on selvittää, onko kokoelmassa joukko objekteja. Iteraattorimenetelmää käytetään luettelon kohteiden selaukseen. Listan laajentaessa kokoelmaa, kaikki Keräyksen menetelmät kuuluvat Listiin. Muut kuin nämä menetelmät, luettelossa on menetelmiä, kuten get ja set. Ohjelmoija voi saada arvon tietystä indeksistä käyttämällä get-menetelmää. Ohjelmoija voi asettaa arvon tietylle indeksille asetettua menetelmää käyttämällä. 'indexOf':a käytetään elementin indeksin löytämiseen.

Listassa 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 listan loppuun. Se ylläpitää myös lisättyä järjestystä. Jos elementti 1 lisätään ja sitten elementti2 lisätään, elementti1 on ennen elementtiä 2.

Ero luettelon ja joukon välillä
Ero luettelon ja joukon välillä

Kuva 01: Luettelo ja sarja

ArrayList, LinkedList, Vector ovat joitakin luokkia, jotka toteuttavat List. ArrayListissä elementin käyttö on nopeaa, mutta lisääminen ja poistaminen on pienempi. ArrayList ei ole säikeen varma. Saman ArrayListin käyttäminen useista säikeistä ei välttämättä anna samaa tulosta. LinkedListissä elementit linkitetään sekä taaksepäin että eteenpäin. Elementtien lisääminen ja poistaminen LinkedList-listalla on nopeampaa kuin ArrayList. LinkedList toteuttaa List ja Queue molemmat. Vector on samanlainen kuin ArrayList, mutta se on kulutuspintaturvallinen, koska kaikki menetelmät ovat synkronoituja.

Mikä on asetettu?

Set on käyttöliittymä, joka laajentaa kokoelman käyttöliittymää. Koska Set-käyttöliittymä laajentaa kokoelmaa, kaikki keräämisen menetelmät kuuluvat myös joukkoon. Joukko ei tue päällekkäisiä arvoja. Siksi ohjelmoija ei voi tallentaa samaa elementtiä kahdesti. Se säilyttää ainutlaatuisen elementtijoukon. SortedSet-käyttöliittymä laajentaa Set-käyttöliittymää. SortedSet säilyttää elementit lajiteltuna. NavigableSet-käyttöliittymä laajentaa SortedSet-ohjelmaa. NavigableSet tarjoaa navigointimenetelmiä, kuten alempi, lattia, katto jne.

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

Mitä yhtäläisyyksiä listalla ja joukolla on?

  • Sekä luettelo- että asetusliitännät laajentavat kokoelman käyttöliittymää.
  • Sekä luettelo- että asetustukitoiminnot, kuten elementtien lisääminen ja poistaminen.

Mitä eroa on luettelolla ja joukolla?

Lista vs sarja

Listaliittymä on kokoelman alikäyttöliittymä, joka sisältää menetelmiä toimintojen suorittamiseksi, kuten lisääminen, poistaminen indeksin perusteella. Aseta käyttöliittymä on kokoelman alikäyttöliittymä, joka sisältää menetelmiä suorittaa toimintoja, kuten lisätä, poistaa elementtejä säilyttäen samalla yksilölliset elementit.
Luokat
ArrayList, Vector ja LinkedList ovat luokkia, jotka toteuttavat List-käyttöliittymän. HashSet, LinkedHashSet ja TreeSet ovat luokkia, jotka toteuttavat Set-liittymän.
Elementtien kopiointi
Lista tukee elementtien kopiointia. Set ei tue elementtien päällekkäisyyttä. Elementit ovat ainutlaatuisia.

Yhteenveto – Lista vs sarja

Kokoelmia käytetään elementtien tallentamiseen dynaamisesti. Ohjelmointikielet, kuten Java, tarjoavat Collection-liittymän. Lista ja Set ovat kaksi rajapintaa, jotka kuuluvat Collection-käyttöliittymään. Molemmat käyttöliittymät laajentavat kokoelmaa. Tässä artikkelissa käsiteltiin luettelon ja joukon eroa. Keskeinen ero Listan ja Setin välillä on, että Lista tukee saman elementin tallentamista useita kertoja, kun taas Set ei tue saman elementin tallentamista useita kertoja. Sarja säilyttää aina ainutlaatuiset elementit.

Suositeltava: