Erinevus loendis ja komplektis Java-s

Autor: Laura McKinney
Loomise Kuupäev: 2 Aprill 2021
Värskenduse Kuupäev: 15 Mai 2024
Anonim
Difference between List and Set in Java | Java Interview
Videot: Difference between List and Set in Java | Java Interview

Sisu


Loendi ja komplekti liides laiendab kogumist. Mõlemad säilitavad elementide või objektide kollektsiooni. Kuid peamine erinevus, mis neid üksteisest eristab, on nimekiri - tellitud elementide kogum, elemendid lisatakse või eemaldatakse või neile pääseb juurde indeksmuutuja abil. Teisest küljest on Set objektide kogum, kus kollektsioon ei luba selles dubleerivaid elemente. Uurime allpool toodud võrdlusdiagrammi abil veel mõned erinevused loendi ja komplekti liideste vahel.

  1. Võrdlusdiagramm
  2. Definitsioon
  3. Peamised erinevused
  4. Järeldus

Võrdlusdiagramm

Võrdluse alusLoend Komplekt
PõhilineLoend säilitab loendis talletatud elementide jada.Komplekt ei säilita eriti sisestamise järjekorda, kuid Linked HashSet säilitab sisestamise järjekorra.
KopeerimineLoendis võib olla dubleerivaid elemente.Meetod add () tagastab vale, kui proovite dubleerivaid elemente sisestada.
MeetodidLisaks Kogus määratletud meetoditele määratleb loetelu ka mõned oma meetodid.Komplekt ei määratle täiendavat meetodit.
Rakendamine Loendit rakendavad ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack.Komplekti rakendavad HashSet, LinkedHashSet, EnumSet, TreeSet, CopyOnWriteArraySet.


Loendi määratlus

Loendiliides laiendab kogumisliidest. Loend on tellitud elementide või objektide kogum. Erinevalt komplektist võib loend sisaldada dubleerivaid elemente. Lisaks kogumisloendis määratletud meetoditele määratleb mõned oma meetodid, näiteks indeksipõhise get () ja set () meetodi. Kogust päritud meetodid add () ja remove (), mis lisab või eemaldab määratud elemendi meetodi argumendis määratud indeksist. Loend on omamoodi massiiv, mille suurus kasvab, kui loendisse elemente lisame.

Loend ei määratle ühtegi meetodit loendi indeksite vahemikuga töötamiseks. See määratleb alamloendi () meetodi, mis tagastab alamloendi kindlaksmääratud vahemiku algsest loendist. Alamloendis tehtud muudatused kuvatakse ka algses loendis. Loendiliidest rakendavad ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack.

Komplekti määratlus

Määratud liides laiendab kogumisliidest. Määratud liides on kogum või objektide rühm, mis ei dubleeri selles olevat objekti. See tähendab, et kaks viidet ei saa viidata ühele objektile või üks viide ei saa viidata kahele objektile või ei saa olla kahte viidet, mis viitaksid nullile. Elemendi järjekord või järjestus pole oluline komplekt, kuid pole ka nii, et see keelab tellitud komplekti.


Komplektiliides ei määratle ühtegi meetodit lisaks jaotises Kogumine määratletud meetodile. Selle asemel piirab see lisa () ja addall () kogumismeetodeid, et lisada kollektsiooni dubleeriv objekt. Kui proovite kogu kollektsiooni dubleerivaid objekte lisada kasutades kogumi meetodit add (), annab see vale väärtuse. Vastasel juhul naaseb see tõeseks. Komplekti liidest rakendavad HashSet, LinkedHashSet, EnumSet, TreeSet, CopyOnWriteArraySet.

  1. Elementide / objektide jada kollektsioonis hoitakse loendis, samas kui Set ei säilita elementide järjekorda, kuid LinkedHashSet säilitab sisestamise järjekorra.
  2. Loend võib sisaldada dubleerivaid elemente, kuna see identifitseerib mis tahes elemendi oma indeksiga, kuid komplekt Set ei luba dubleerivaid elemente, kuna sellel pole ühtegi kollektsiooni objekti tuvastamiseks mingit indeksi tüüpi elementi.
  3. Loend määratleb mõned meetodid lisaks kogumikus määratletud meetoditele ka omaette. Teisest küljest ei defineeri Set ühtegi oma meetodit, kuid see piirab kogumismeetodeid dubleerivate elementide lisamiseks.
  4. Loendit rakendavad liidesed ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack. Teisest küljest rakendavad komplekti liidesed HashSet, LinkedHashSet, EnumSet, TreeSet, CopyOnWriteArraySet.

Järeldus:

Loendi ja komplekti liidese kasutamine sõltub nõudest. Kui objektide / elementide järjekord on oluline, peate kasutama loendiliidest. Kui te ei vaja oma kollektsioonis dubleerivaid elemente, peate kasutama liidest Set