Forskellen mellem liste og sæt i Java

Forfatter: Laura McKinney
Oprettelsesdato: 2 April 2021
Opdateringsdato: 4 Kan 2024
Anonim
Forskellen mellem liste og sæt i Java - Teknologi
Forskellen mellem liste og sæt i Java - Teknologi

Indhold


Liste og sæt interface udvider samling. Begge opretholder samlingen af ​​elementer eller genstande. Men den største forskel, der adskiller dem fra hinanden, er Liste er en samling af ordnet element, elementerne tilføjes eller fjernes eller fås adgang ved hjælp af en indeksvariabel. På den anden side er Set en samling objekter, hvor samlingen ikke tillader duplikatelementer i det. Lad os undersøge nogle flere forskelle mellem liste og sæt-grænseflader ved hjælp af sammenligningstabellen vist nedenfor.

  1. Sammenligningstabel
  2. Definition
  3. Vigtige forskelle
  4. Konklusion

Sammenligningstabel

Grundlag for sammenligningListe Sæt
GrundlæggendeListe opretholder sekvensen for de elementer, der er gemt på en liste.Sættet opretholder ikke indsættelsesrækkefølge, men Linked HashSet opretholder indsættelsesrækkefølgen.
DuplikeringListen kan have duplikatelementer i den.Metoden Tilføj () returnerer falsk, hvis du prøver at indsætte duplikatelementerne.
MetoderUd over metoder, der er defineret i Samling, definerer Liste nogle af sine egne metoder.Sæt definerer ikke nogen yderligere metode.
Implementering Liste implementeres af ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack.Sættet implementeres af HashSet, LinkedHashSet, EnumSet, TreeSet, CopyOnWriteArraySet.


Definition af liste

Listegrænsefladen udvider Collection interface. En liste er en ordnet samling af elementer eller objekter. I modsætning til sæt, kan listen indeholde duplikatelementer. Ud over de metoder, der er defineret i Samlingsliste, defineres nogle metoder til sin egen lignende indeksbaserede get () og sæt () -metode. Metoderne tilføj () og fjern (), der er arvet fra Samling, der tilføjer eller fjerner det specificerede element fra det indeks, der er angivet i metodargumentet. Liste er en slags matrix, hvis størrelse vokser, når vi tilføjer elementer til listen.

Liste definerer ikke nogen metode til at arbejde på intervallet af indekser på en liste. Den definerer en sublist-metode (), der returnerer en sublist fra den originale liste over et specificeret interval. De ændringer, du foretager i underlisten, vises også på den originale liste. Listegrænsefladen implementeres af ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack.


Definition af sæt

Set interface udvider Collection interface. Set interface er en samling eller en gruppe objekter, der ikke indeholder nogen duplikatobjekt i den. Det betyder, at to henvisninger ikke kan henvise til et objekt, eller at en henvisning ikke kan henvise til to objekter, eller at der ikke kan være to henvisninger, der henviser til Null. Elementets rækkefølge eller rækkefølge er ikke vigtigt Sæt, men det er ikke, at det forbyder det bestilte sæt.

Sætgrænsefladen definerer ikke nogen metode ud over den metode, der er defineret i Samling. I stedet begrænser det add () og addall () indsamlingsmetoderne for at tilføje ethvert duplikatobjekt i en samling. Hvis du prøver at tilføje et duplikatobjekt i en samling ved hjælp af add () -metoden til samling, returnerer det falsk. Ellers vender det tilbage. Sætgrænsefladen implementeres af HashSet, LinkedHashSet, EnumSet, TreeSet, CopyOnWriteArraySet.

  1. Sekvensen af ​​elementer / objekt i en samling opretholdes i Liste, mens Set opretholder ikke rækkefølgen af ​​elementerne, men der er en undtagelse, LinkedHashSet opretholder indsættelsesrækkefølgen.
  2. Liste kan have duplikatelementer, da den identificerer ethvert element med sit indeks, men Sæt tillader ikke duplikatelementer, da det ikke har nogen indeksform for element til at identificere et objekt i en samling.
  3. Liste definerer nogle metoder alene, ud over de metoder, der er defineret i Samling. På den anden side definerer Set ikke nogen egen metode, men det begrænser metoderne til samling for at tilføje duplikatelementer.
  4. Liste implementeres af ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack-grænseflader. På den anden side implementeres Set af HashSet, LinkedHashSet, EnumSet, TreeSet, CopyOnWriteArraySet-grænseflader.

Konklusion:

Brugen af ​​interface og liste og sæt afhænger af kravet. Hvis rækkefølgen af ​​objekter / elementer er vigtig, skal du bruge Liste-interface. Hvis du ikke har brug for nogen duplikatelementer i din samling, skal du bruge Set interface