Loendi ja komplekti erinevus

Sisukord:

Loendi ja komplekti erinevus
Loendi ja komplekti erinevus

Video: Loendi ja komplekti erinevus

Video: Loendi ja komplekti erinevus
Video: Алексей Воробьев - Я тебя люблю 2024, November
Anonim

Võtmete erinevus – loend vs komplekt

Enamik programmeerimiskeeli kasutavad sama tüüpi andmete kogumi salvestamiseks massiive. Massiivide üks peamisi puudusi on see, et kui massiivi suurus on deklareeritud, ei saa seda muuta. Kui programmeerija soovib salvestada massiivi suurust ületavaid väärtusi, peaks ta looma uue massiivi ja kopeerima olemasolevad elemendid uude massiivi. Sellistes olukordades saab kasutada kogusid. Kogude toel on võimalik elemente lisada, elemente kustutada ja palju muid toiminguid teha. Programmeerimiskeeltes, nagu Java, on saadaval erinevat tüüpi kogusid. Loend ja Set on kogude hierarhia liidesed. Teiste liideste baasliides on Collection. Peamine erinevus loendi ja komplekti vahel on see, et loend toetab sama elemendi mitu korda salvestamist, samas kui komplekt ei toeta sama elemendi mitu korda salvestamist. Seetõttu ei luba komplekt dubleerimist.

Mis on nimekiri?

Loend on liides, mis laiendab kogu liidest. Koguliideses on mitmeid meetodeid. Lisamismeetod aitab elementi lisada. "Eemaldamise meetod" on elemendi eemaldamine. Mitme elemendi lisamiseks on meetod "addAll" ja elementide eemaldamiseks kogust meetod "removeAll". Sisaldab meetod aitab leida, kas konkreetne objekt on loendis olemas või mitte. „ContainsAll” eesmärk on leida, kas kogus on objekte. Iteraatori meetodit kasutatakse loendi üksuste läbimiseks. Kuna loend laiendab kogu, kuuluvad kõik kogumise meetodid loendisse. Peale nende meetodite on loendis selliseid meetodeid nagu hankimine ja määramine. Programmeerija saab hankimismeetodi abil saada väärtuse konkreetse indeksi juures. Programmeerija saab seadistatud meetodi abil määrata konkreetse indeksi väärtuse. 'indexOf' kasutatakse elemendi indeksi leidmiseks.

Loendis saab toiminguid teha vastav alt asukohale. Programmeerija saab anda andmeelemendi, mis tuleb indeksisse lisada. Nii et see lisatakse konkreetsesse indeksisse. Kui programmeerija indeksit ei anna, lisatakse element loendi lõppu. Samuti säilitab see sisestatud järjekorra. Kui lisatakse element 1 ja seejärel element2, siis element1 on enne elementi2.

Erinevus loendi ja komplekti vahel
Erinevus loendi ja komplekti vahel

Joonis 01: loend ja komplekt

ArrayList, LinkedList, Vector on mõned klassid, mis rakendavad loendit. ArrayListis on elemendile juurdepääs kiire, kuid sisestamine ja kustutamine madalam. ArrayList ei ole lõimekindel. Juurdepääs samale ArrayListile mitmest lõimest ei pruugi anda sama tulemust. Lingitud loendis on elemendid lingitud nii tagasi- kui ka edasisuunas. Elementide lisamine ja kustutamine LinkedListi abil on kiirem kui ArrayList. LinkedList rakendab nii loendit kui ka järjekorda. Vektor on sarnane ArrayListiga, kuid see on turvisekindel, kuna kõik meetodid on sünkroonitud.

Mis on määratud?

Set on liides, mis laiendab kogu liidest. Kuna komplekti liides laiendab kogumist, kuuluvad kogumisse ka kõik kogumise meetodid. Komplekt ei toeta väärtuste dubleerimist. Seetõttu ei saa programmeerija sama elementi kaks korda salvestada. See säilitab ainulaadse elementide komplekti. SortedSeti liides laiendab Seti liidest. SortedSet säilitab elemendid sorteeritud järjekorras. NavigableSeti liides laiendab SortedSeti. NavigableSet pakub navigeerimismeetodeid, nagu madalam, põrand, lagi jne.

HashSet, LinkedHashSet ja TreeSet on mõned klassid, mis rakendavad Seti liidest. HashSet rakendab Seti liidest. See ei säilita sisestatud järjekorda. Kui väärtused sisestatakse kujul a, x, b, võib see salvestada kui x, a, b. LinkedSet säilitab sisestatud järjekorra. Kui elemendid sisestatakse järjekorras a, x, b, on salvestusjärjestus a, x, b. TreeSet rakendab Seti ja NavigableSeti. See ei säilita sisestamise järjekorda, vaid salvestab elemendid sorteeritud järjekorras. Kui sisestatud järjestus on a, c, b, salvestatakse elemendid kujul a, b, c. Kõigil HashSet, LinkedHashSet ja TreeSet ei ole dubleerivaid elemente.

Millised on loendi ja komplekti sarnasused?

  • Nii loendi- kui ka seadistusliidesed laiendavad kogu liidest.
  • Nii loendi kui ka määramise tugitoimingud, nagu elementide lisamine ja eemaldamine.

Mis vahe on loendil ja komplektil?

Loend vs komplekt

Loendi liides on kollektsiooni alamliides, mis sisaldab meetodeid selliste toimingute tegemiseks nagu sisestamine, kustutamine indeksi alusel. Set Interface on kollektsiooni alamliides, mis sisaldab meetodeid selliste toimingute tegemiseks nagu elementide sisestamine, kustutamine, säilitades samas ainulaadsed elemendid.
Tunnid
ArrayList, Vector ja LinkedList on klassid, mis rakendavad loendi liidest. HashSet, LinkedHashSet ja TreeSet on klassid, mis rakendavad Seti liidest.
Elementide dubleerimine
Loend toetab elementide dubleerimist. Set ei toeta elementide dubleerimist. Elemendid on ainulaadsed.

Kokkuvõte – loend vs komplekt

Kogusid kasutatakse elementide dünaamiliseks salvestamiseks. Programmeerimiskeeled, nagu Java, pakuvad kogumisliidest. Loend ja Set on kaks liidest, mis kuuluvad kogu liidesesse. Mõlemad liidesed laiendavad kollektsiooni. Selles artiklis käsitleti loendi ja komplekti erinevust. Peamine erinevus loendi ja komplekti vahel on see, et loend toetab sama elemendi mitu korda salvestamist, samas kui komplekt ei toeta sama elemendi mitu korda salvestamist. Komplekt säilitab alati ainulaadsed elemendid.

Soovitan: