Ero joukon ja luettelon välillä

Ero taulukolistan ja linkitetyn luettelon välillä

Ennen kuin joudumme todellisiin eroihin, tutustukaamme siihen, mitkä ne ovat todella?

Mikä on sarja?

Olemme havainneet joukon käsitteen matematiikassa ja joukko täällä tarkoittaa enemmän tai vähemmän samaa. Kyllä, se on kokoelma elementtejä ja useimmissa tapauksissa kokoelma vastaavia elementtejä. Voit yrittää lisätä näitä elementtejä sarjaan ja yrittää tulostaa ymmärtääksesi kuinka se todella tallennetaan.

Syöttö sarjaan: 20, 50, 10, 30.

Se todella tallennetaan Set as 10, 20, 30, 50.

Elementit on lajiteltu tähän eikä niitä tallenneta lisäysjärjestykseen. Tämä on yksi Setin ominaisuuksista, että se lajittelee elementit aina ennen tallentamista, ja tietysti siihen on poikkeuksia, ja yksi sellainen on LinkedhashSet, koska se ylläpitää elementtien lisäysjärjestystä..

Tietokoneellisessa mielessä sarja sisältää muutama lisäominaisuus, kuten menetelmät ja periytyminen. Menetelmät ovat aivan kuin funktiot ja ne suorittavat tiettyjä tehtäviä, kuten lisäämällä, poistamalla tai iteroimalla elementtijoukon läpi. Suurin osa meistä tunnetaan termillä perintö ja se tarkoittaa samaa täällä. Kyllä, me voimme periä menetelmän sen kokoelmasta, jotta sitä voidaan käyttää Set-käyttöliittymän kanssa. Puhumme jälleen uudesta termistä, ts. Joukkorajapinnasta, ja se ei ole muuta kuin kokonainen joukko elementtejä, mukaan lukien Methods.

Kuinka toteuttaa se?

Vain ymmärtääksemme paremmin, olemme edustaneet sarjaa sen syntaksilla. Alla olevasta syntaksista voit tunnistaa erityyppiset joukot, kuten HashSet ja TreeSet.

tuo java.util. *;

julkinen luokka Seksinäyte

julkinen staattinen void main (merkkijonot [])

int lask. [] = 34, 22,10,60,30,22 25, 17, 76, 12, 88, 57;

Sarja = uusi HashSet ();

yrittää

varten (int i = 0; i < 5; i++)

set.add (count [i]);

System.out.println (set);

TreeSet sortedSeteg = uusi TreeSet (sarja);

System.out.println (“Tässä meillä on lajiteltu lähtö:”);

System.out.println (sortedSeteg);

System.out.println (“Katso ensimmäinen elementti:“ + (kokonaisluku) sortedSet.first ());

System.out.println (“Katso viimeinen elementti:“ + (kokonaisluku) sortedSet.last ());

saalis (poikkeus e)

Yllä olevan koodin lähtö on seuraava.

[25, 17, 76, 12, 88]
Tässä on lajiteltu tulos:
[12, 17, 25, 76, 88]
Katso ensimmäinen elementti: 12
Katso viimeinen osa: 88

Mikä on Lista?

Lista laajentaa kokoelmaa samalla tavalla kuin joukko teki, mutta se ylläpitää lisäysjärjestystä. Yrität lisätä seuraavat nimet luetteloon ja katso, miten se lisätään luetteloon.

Tulo luetteloon: John, Nancy, Mary, Alice.

Kuinka se tallennetaan luetteloon: John, Nancy, Mary, Alice.

Huomaa vain järjestys, jossa ne asetetaan. Voit tunnistaa, että 'John' on sekä syötteen että ulostulon ensimmäinen elementti, ja sitä seuraa sama järjestys, jossa nimet lisätään. Voimme jopa pitää tätä yhtenä luettelon tärkeimmistä ominaisuuksista.

Kuinka toteuttaa se?

Katsokaamme muutamia luettelon menetelmistä, kuten ArrayList ja LinkedList, alla olevassa syntaksissa.

tuo java.util. *;
julkisen luokan kokoelmanäyte

julkinen staattinen void main (merkkijono [] args)

Lista a1 = uusi ArrayList ();
a1.add ( ”John”);
a1.add ( ”Nancy”);
a1.add ( ”Maria”);
a1.add ( ”Alice”);
System.out.println (”ArrayList Elements are”);
System.out.print (“\ t” + a1);

Lista l1 = uusi LinkedList ();
l1.add ( ”Silvia”);
l1.add ( ”Arjun”);
l1.add ( ”Deepika”);
l1.add ( ”Susan”);
System.out.println ();
System.out.println (”LinkedList Elements are”);
System.out.print (“\ t” + l1);

Yllä olevan syntaksin lähtö on seuraava.

ArrayList-elementit ovat

[John, Nancy, Mary, Alice]

LinkedList Elements

[Silvia, Arjun, Deepika, Susan]

Yllä olevasta koodista on erittäin selvää, että sekä ArrayList että LinkedList ylläpitävät lisäysjärjestystä.

Miten he eroavat toisistaan?

  • Menetelmät ja kuvaukset:

Sarjalla ja listalla on omat menetelmänsä, ja katsotaanpa joitain niistä täällä.

S.No Sarja - menetelmät Luettelo - menetelmät
1. lisätä() - Se on esineiden lisääminen kokoelmaan. tyhjä lisäys (int-hakemisto, Object obj) - Se lisää objektin 'obj' kutsuvien luetteloiden määriteltyyn 'hakemistoon' ja varmistaa, että mitään elementtiä ei korvata siirtämällä edellisiä elementtejä.
2. asia selvä() - Sen tarkoituksena on poistaa esineitä kokoelmasta. boolean addAll (int-hakemisto, kokoelma c) - Se lisää koko kokoelman 'c' kutsuvaan luetteloon ja määritettyyn 'hakemistoon'. Se myös varmistaa, että mitään elementtejä ei korvata. Voimme myös tarkistaa sen toiminnan oikeellisuuden tutkimalla palautusarvon. Se palauttaa arvon 'true', jos muutos onnistuu muuten, se palauttaa arvon 'false'.
3. sisältää() - Sen on tarkistettava, sisältääkö setti tietyn objektin siinä. Se palauttaa arvon 'true', jos esine on läsnä joukossa. Kohteen hankinta (int-hakemisto) - Se palauttaa elementin tai objektin määritettyyn 'hakemistoon'.
4. on tyhjä() - Sen on määritettävä, auttaako kokoelma sitä, koska siinä ei ole mitään elementtejä. Se palauttaa arvon 'true', jos elementtiä ei ole. int lastIndexOf (Object obj) - Se toimii samalla tavalla kuin sisällysluettelo() Menetelmä. Se palauttaa määritetyn objektin 'obj' viimeisen esiintymisen ja arvo '1' palautetaan, jos sellaista ei ole luettelossa. Siksi sitä voidaan käyttää myös sisältää() Asetetun käyttöliittymän menetelmä.
6. Poista() - Elementin poistaminen kokoelmasta määrittelemällä se menetelmän parametriksi. ListIterator listIterator () - Se palauttaa iteraattorin luettelon aloitusindeksiin.
7. koko() - Tarkoituksena on laskea kokoelmassa olevien objektien tai elementtien lukumäärä. ListIterator listIterator (int-hakemisto) - Se auttaa iteroitumaan kutsuttavan luettelon kautta, joka alkaa määritellystä 'hakemistosta'.
8. - Objektin poisto (int hakemisto) - Se poistaa objektin määritettynä 'hakemistossa' ja palauttaa poistetun elementin tuloksena. Se myös pienentää tuloksena olevia luetteloindeksejä vastaamaan poistoa.
9. - Objekti asetettu (int-hakemisto, Object obj) - Tarkoitus on antaa objekti 'obj' kutsuvaan luetteloon määritellyssä 'hakemistossa'.
10. - Lista alaluettelo (int alku, int loppu) - Menetelmää käyttävien luetteloiden on sisällytettävä esineet hakemistosta 'start' indeksiin 'end'.
  • Lisäystilauksen ylläpito:

Sarja ei koskaan ylläpitä elementtien järjestystä, jolla ne lisätään, kun taas luettelo ylläpitää sitä. LinkedHashSet-järjestelmästä on poikkeus tästä säännöstä, koska se ylläpitää lisäysjärjestystä, mutta toinen joukko, kuten HashSet ja TreeSet, lajittelee elementit ennen sen tallentamista. Sama on kuvattu alla olevissa esimerkeissä.

Aseta Tulo: Kissa, nukke, omena.

Varastoidaan nimellä: Apple, Cat, Doll.

Luettelotulo: Kissa, nukke, omena.

Varastoitu nimellä: kissa, nukke, omena.

  • Kopioiden läsnäolo:

Sarja ei koskaan salli kopioiden tekoa, kun taas luettelo sallii sen. Jos luetteloon on lisättävä päällekkäinen arvo, se korvataan. Katso näytteistä set- ja list-duplikaatit.

Asetettu tulo: 10, 20, 20, 50.

Varastoitu: 10, 20, 50.

Luettelotulo: 10, 20, 20, 50.

Varastoitu: 10, 20, 20, 50.

  • Nolla-arvot:

Sarjalla voi olla vain yksi nolla-arvo, kun taas luettelossa voi olla useampi kuin yksi nolla-arvo, eikä sitä ole rajoitettu mihinkään lukuun.

Asetettu syöte: nolla, nolla, mies, koira, lentokone.

Varastoitu: nolla, koira, mies, lentokone.

Luettelotulo: nolla, nolla, mies, koira, lentokone.

Tallennettuna: nolla, nolla, mies, koira, lentokone.

  • Iteraattorin ja listaIteratorin käyttö:

Iterator-menetelmä toimii hyvin sekä Set- että List -menetelmissä, kun taas ListIterator-menetelmä toimii vain List-luettelossa. ListIteratoria voidaan käyttää eteenpäin ja taaksepäin luettelon läpi.

  • Legacy-luokan läsnäolo:

Sarjalla ei ole perintöluokkaa, kun taas Lista-käyttöliittymällä on perintö, jota kutsutaan 'vektoriksi'. Vektori käyttää Lista-käyttöliittymää, ja siksi se ylläpitää lisäysjärjestystä. Synkronointipyrkimyksistä johtuen vektorien lisäysten, poistojen ja päivitysten suorituskyky on hiukan hitaampaa.

  • toteutuksissa:

Muutama joukon toteutuksista on HashSet, LinkedHashSet ja TreeSet. Harvoihin luettelon toteutuksiin sisältyy ArrayList ja LinkedList.

Milloin Set & Listia käytetään?

Aseta ja luettelo-käyttö riippuu puhtaasti lisäysjärjestyksen ylläpidon vaatimuksesta. Kuten olemme oppineet, että joukko ei koskaan ylläpitää lisäysjärjestystä, sitä voidaan käyttää, kun järjestys on vähemmän tärkeä. Käytä luetteloa samalla tavalla, kun joudut ylläpitämään myös lisäysjärjestystä.

Erot taulukkomuodossa:

S.No Erot Aseta Lista
1. Lisäysjärjestys Se ylläpitää lisäysjärjestystä. Ensimmäinen asetettu pysyy ensinnäkin ja niin edelleen riippumatta sen arvosta. Se ei koskaan ylläpitää lisäysjärjestystä.
2. menetelmät Se käyttää menetelmiä, kuten lisää (), tyhjennä (), sisältää (), isEmpty (), poista () ja koko (). Se käyttää menetelmiä, kuten add (), addAll (), get (), lastIndexOf (), ListIterator () parametrilla tai ilman, poista (), set () ja subList ().
3. Kopiot Se ei koskaan salli jäljennöksiä ja tällaisissa esiintymisissä arvo korvataan. Se sallii jäljennökset.
4. Nolla-arvot Sillä voi olla korkeintaan yksi nolla-arvo. Sillä voi olla mikä tahansa määrä nolla-arvoja.
5. Iteraattorin () ja listanteraattorin () käyttö Se käyttää vain menetelmän iteraattoria (). Se käyttää sekä iteraattoria () että listIteratoria ().
6. Legacy-luokan läsnäolo Ei ole Legacy-luokkaa. Sillä on Legacy-luokka, jota kutsutaan vektoriksi.
7. toteutukset Harvat Set-käyttöliittymän toteutuksista ovat HashSet, LinkedHashSet ja Tree Set. Harvat List-käyttöliittymän toteutuksista ovat LinkedList ja ArrayList.

Toivottavasti olemme sisällyttäneet kaikki mahdolliset erot joukon ja luettelon välillä. Jos sinusta tuntuu, että olemme menettäneet jotain, ota meihin yhteyttä.