Atšķirība starp kopu un sarakstu

Atšķirība starp masīvu sarakstu un saistīto sarakstu

Pirms mēs iedziļināmies faktiskajās atšķirībās, iepazīsimies ar to, kas tās patiesībā ir?

Kas ir komplekts?

Mēs esam saskārušies ar jēdzienu “kopa” matemātikā, un kopa šeit vairāk vai mazāk nozīmē to pašu. Jā, tā ir elementu kolekcija un vairumā gadījumu līdzīgu elementu kolekcija. Jūs varat mēģināt pievienot šos elementus komplektam un mēģināt drukāt, lai saprastu, kā tas faktiski tiek glabāts.

Ievade komplektā: 20, 50, 10, 30.

Tas faktiski tiek saglabāts komplektā kā 10, 20, 30, 50.

Elementi šeit ir sakārtoti un tiek saglabāti nevis ievietošanas secībā. Šī ir viena no Set iezīmēm, ka tā vienmēr uzglabā elementus pirms uzglabāšanas, un, protams, ir arī izņēmumi, un viens no tiem ir LinkedhashSet, jo tas uztur elementu ievietošanas secību.

Datoru izteiksmē komplekts ietver dažas papildu īpašības, piemēram, metodes un mantojumu. Metodes ir gluži kā funkcijas, un tās veic noteiktus uzdevumus, piemēram, pievienošanu, noņemšanu vai atkārtošanu, izmantojot elementu kopu. Lielākajai daļai no mums ir plaši pazīstams termins Mantojums, un tas šeit nozīmē to pašu. Jā, mēs varam mantot metodi no tās kolekcijas, lai to varētu izmantot kopas interfeisā. Atkal mēs runājam par jaunu terminu, t.i., kopas saskarni, un tas nav nekas vairāk kā viss elementu kopums, ieskaitot metodes.

Kā to ieviest?

Tikai labākai izpratnei mēs esam pārstāvējuši komplektu ar tā sintakse. Zemāk esošajā sintakse jūs varētu identificēt dažādus komplekta veidus, piemēram, HashSet un TreeSet.

importa java.util. *;

sabiedriskās klases piemērs

publiski statiskā tukšā galvenā (stīgas args [])

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

Komplekta komplekts = new HashSet ();

izmēģiniet

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

set.add (skaits [i]);

System.out.println (komplekts);

TreeSet sortedSeteg = jauns TreeSet (komplekts);

System.out.println (“Šeit mums ir sakārtota izlaide:”);

System.out.println (sortedSeteg);

System.out.println (“Paskaties uz pirmo elementu:“ + (vesels skaitlis) sortedSet.first ());

System.out.println (“Paskaties uz pēdējo elementu:“ + (vesels skaitlis) sortedSet.last ());

nozveja (izņēmums e)

Iepriekš minētā koda izvade ir šāda.

[25, 17, 76, 12, 88]
Šeit ir sakārtots iznākums:
[12, 17, 25, 76, 88]
Apskatiet pirmo elementu: 12
Paskaties uz pēdējo elementu: 88

Kas ir saraksts?

Saraksts paplašina kolekciju līdzīgi kā to izdarīja komplekts, taču tas saglabā ievietošanas secību. Jūs mēģināt sarakstam pievienot šādus nosaukumus un redzēt, kā tas tiek pievienots.

Ievade sarakstā: Džons, Nensija, Marija, Alise.

Kā tas tiek glabāts sarakstā: Džons, Nensija, Marija, Alise.

Vienkārši ievērojiet to ievietošanas secību. Jūs varat identificēt, ka “Jānis” ir pirmais elements gan ievadē, gan izvadē, un tam seko tajā pašā secībā, kādā vārdi tiek ievietoti. Mēs pat varam uzskatīt šo par vienu no galvenajām saraksta īpašībām.

Kā to ieviest?

Apskatīsim dažas no saraksta metodēm, piemēram, ArrayList un LinkedList, zemāk esošajā sintaksē.

importa java.util. *;
sabiedriskās klases kolekcijas paraugs

public static void main (stīgas [] args)

Saraksts a1 = jauns ArrayList ();
a1.add (“Jānis”);
a1.add (“Nancy”);
a1.add (“Marija”);
a1.add (“Alise”);
System.out.println (“ArrayList Elements are”);
System.out.print (“\ t” + a1);

Saraksts l1 = jauns LinkedList ();
l1.add (“Silvija”);
l1.add (“Arjun”);
l1.add (“Deepika”);
l1.add (“Susan”);
System.out.println ();
System.out.println (“LinkedList Elements are”);
System.out.print (“\ t” + l1);

Iepriekš norādītās sintakse ir šāda.

ArrayList elementi ir

[Džons, Nensija, Marija, Alise]

LinkedList elementi

[Silvija, Arjunga, Deepika, Sūzena]

No iepriekšminētā koda ir ļoti skaidrs, ka gan ArrayList, gan LinkedList uztur ievietošanas kārtību.

Kā viņi atšķiras?

  • Metodes un apraksti:

Komplektam un sarakstam ir savas metodes, un šeit apskatīsim dažas no tām.

S.Nē Komplekts - metodes Saraksts - metodes
1. pievienot () - Tas ir objektu pievienošana kolekcijai. anulēt pievienošanu (int indekss, Object obj) - Tas pievieno objektu “obj” norādītajā izsaukšanas saraksta “indeksā” un pārliecinās, ka, pārbīdot iepriekšējos elementus, netiek pārrakstīts neviens elements.
2. notīrīt () - Tas ir priekšmetu noņemšana no kolekcijas. Būla addAll (iekšējais indekss, kolekcija c) - Tas pievieno visu kolekciju “c” izsaukšanas sarakstam un norādītajā “indeksā”. Tas arī nodrošina, ka neviens elements netiek pārrakstīts. Mēs varam arī pārbaudīt tā darbības pareizību, pārbaudot atgriešanas vērtību. Tas atgriežas “true”, ja izmaiņas ir veiksmīgas citādi, tā atgriež vērtību “false”.
3. satur () - Ir jāpārbauda, ​​vai komplektā nav noteikta objekta. Tas atgriež vērtību “true”, ja objekts atrodas komplektā. Objekta iegūšana (int indekss) - Tas atgriež elementu vai objektu norādītajā 'indeksā'.
4. ir tukšs() - Ir jānosaka, vai kolekcija palīdz, jo tajā nav elementu. Tas atgriež vērtību “patiesa”, ja nav elementa. int lastIndexOf (Objekts obj) - Tas darbojas līdzīgi kā indexOf () Metode. Tas atgriež norādītā objekta 'obj' pēdējo notikumu, un vērtība '1' tiek atgriezta, ja sarakstā šāda objekta nav. Tāpēc to var izmantot arī kā satur () Iestatītā interfeisa metode.
6. noņemt () - Tas ir noņemt elementu no kolekcijas, norādot to kā metodes parametru. ListIterator listIterator () - Tas atgriež atkārtotāju saraksta sākuma indeksā.
7. Izmērs() - Tas ir jāaprēķina kolekcijā esošo objektu vai elementu skaits. ListIterator listIterator (int indekss) - Tas palīdz atkārtot atsaucošo sarakstu, kas sākas ar norādīto “indeksu”.
8. - Objekta noņemšana (int indekss) - Tas izdzēš objektu ar norādīto 'indeksu' un kā rezultātu atgriež izdzēsto elementu. Tas arī samazina iegūto saraksta indeksus, lai atspoguļotu dzēšanu.
9. - Objektu kopa (int indekss, Object obj) - Objektam “obj” ir jāpiešķir izsaukšanas saraksts norādītajā “indeksā”..
10. - Sarakstu apakšsarakstā (int sākums, int beigas) - Objektā no indeksa “sākums” līdz indeksam “beigas” ir jāiekļauj saraksti, uz kuriem atsaucas metode.
  • Ievietošanas pasūtījuma uzturēšana:

Komplekts nekad neuztur elementu secību, kādā tie tiek ievietoti tajā, kamēr saraksts to uztur. Šim noteikumam ir izņēmums attiecībā uz LinkedHashSet, jo tas uztur ievietošanas secību, bet cits komplekts, piemēram, HashSet un TreeSet, sakārto elementus pirms tā glabāšanas. Tas pats ir aprakstīts ar piemēriem zemāk.

Komplekts Ievade: kaķis, lelle, ābols.

Uzglabā kā: Apple, Cat, Doll.

Saraksta ievade: kaķis, lelle, ābols.

Saglabāts kā: kaķis, lelle, ābols.

  • Dublikātu klātbūtne:

Komplekts nekad nepieļauj dublikātus, savukārt saraksts to atļauj. Ja sarakstam jāpievieno vērtības dublikāts, tad tā tiek pārrakstīta. Apskatiet Set un List dublikātu paraugus.

Iestatītā ieeja: 10, 20, 20, 50.

Uzglabā kā: 10, 20, 50.

Saraksta ievade: 10, 20, 20, 50.

Uzglabā kā: 10, 20, 20, 50.

  • Nulles vērtības:

Komplektam var būt tikai viena nulles vērtība, turpretim sarakstam var būt vairāk nekā viena nulles vērtība un tas nav ierobežots ar nevienu skaitli.

Iestatītā ievade: null, null, cilvēks, suns, lidmašīna.

Saglabāts kā nulle, suns, cilvēks, lidmašīna.

Saraksta ievade: nulle, nulle, cilvēks, suns, lidmašīna.

Saglabāts kā nulle, nulle, cilvēks, suns, lidmašīna.

  • Iteratora un saitaIteratora izmantošana:

Iteratoru metode darbojas labi gan ar Set, gan ar List, savukārt metode ListIterator darbojas tikai ar List. ListIterator var izmantot gan saraksta virzībai uz priekšu, gan atpakaļ.

  • Mantotās klases klātbūtne:

Komplektam nav mantojuma klases, savukārt saraksta saskarnei ir mantojums, ko sauc par “vektoru”. Vektors izmanto saraksta saskarni, tāpēc tas uztur ievietošanas secību. Sakarā ar sinhronizācijas vektora papildinājumu, dzēšanu un atjauninājumu veiktspēja ir nedaudz lēnāka.

  • Īstenošana:

Tikai dažas no komplekta ieviešanām ir HashSet, LinkedHashSet un TreeSet. Tikai daži no saraksta ieviešanas veidiem satur ArrayList un LinkedList.

Kad lietot Set & List?

Komplekta un saraksta izmantošana ir pilnībā atkarīga no prasības uzturēt ievietošanas kārtību. Kā mēs uzzinājām, ka komplekts nekad neuztur ievietošanas kārtību, to var izmantot, ja pasūtījumam ir mazāka nozīme. Līdzīgā veidā izmantojiet sarakstu, kad ir jāuztur arī ievietošanas secība.

Atšķirības tabulas formā:

S.Nē Atšķirības Komplekts Saraksts
1. Ievietošanas kārtība Tas uztur ievietošanas kārtību. Pirmais ievietotais paliek pirmajā vietā un tā tālāk neatkarīgi no tā vērtības. Tas nekad neuztur ievietošanas kārtību.
2. Metodes Tas izmanto tādas metodes kā pievienot (), notīrīt (), satur (), isEmpty (), noņemt () un lielumu (). Tas izmanto tādas metodes kā add (), addAll (), get (), lastIndexOf (), ListIterator () ar vai bez parametra, noņemt (), set () un subList ().
3. Dublikāti Tas nekad nepieļauj dublikātus, un šādu parādīšanās gadījumā vērtība tiek pārrakstīta. Tas ļauj kopijas.
4. Nulles vērtības Tajā maksimāli var būt tikai viena nulles vērtība. Tam var būt jebkurš nulles vērtību skaits.
5. Iteratora () un sarakstaIteratora () izmantošana Tas izmanto tikai metodes iteratoru (). Tas izmanto gan iteratoru (), gan listIterator ().
6. Mantotās klases klātbūtne Nav Legacy klases. Tam ir Legacy klase, ko sauc par vektoru.
7. Īstenošana Tikai dažas no Set interfeisa ieviešanām ir HashSet, LinkedHashSet un Tree Set. Tikai daži no saraksta interfeisa ieviešanas veidiem ir LinkedList un ArrayList.

Jācer, ka mēs esam iekļāvuši visas iespējamās atšķirības starp komplektu un sarakstu. Ja jūtat, ka esam kaut ko palaiduši garām, lūdzu, dariet mums to zināmu.