Belangrijk verschil – Lijst vs Set
De meeste programmeertalen gebruiken arrays om een set gegevens van hetzelfde type op te slaan. Een groot nadeel van arrays is dat, zodra de grootte van de array is aangegeven, deze niet meer kan worden gewijzigd. Als de programmeur een waarde wil opslaan die groter is dan de arraygrootte, moet hij een nieuwe array maken en de bestaande elementen naar de nieuwe array kopiëren. In deze situaties kunnen collecties worden gebruikt. Het is mogelijk om elementen toe te voegen, elementen te verwijderen en vele andere bewerkingen met de ondersteuning van collecties. Er zijn verschillende soorten collecties beschikbaar in programmeertalen zoals Java. Lijst en Set zijn interfaces van de collectiehiërarchie. De basisinterface voor andere interfaces is Collection. Het belangrijkste verschil tussen List en Set is dat List ondersteuning biedt voor het meerdere keren opslaan van hetzelfde element, terwijl Set geen ondersteuning biedt voor het meerdere keren opslaan van hetzelfde element. Daarom staat een set geen duplicatie toe.
Wat is lijst?
De lijst is een interface die de collectie-interface uitbreidt. Er is een aantal methoden in de collectie-interface. De add-methode helpt om een element toe te voegen. De ‘verwijder methode’ is om een element te verwijderen. Er is 'addAll-methode' om meerdere elementen toe te voegen, terwijl 'removeAll-methode' om de elementen uit de verzameling te verwijderen. De methode bevat helpt om te bepalen of een specifiek object in de lijst aanwezig is of niet. De 'containsAll' is om te achterhalen of een set objecten in de collectie aanwezig is. De iteratormethode wordt gebruikt om door de items van de lijst te bladeren. Aangezien List Collection uitbreidt, behoren alle methoden van Collection tot List. Afgezien van deze methoden, heeft de lijst methoden zoals get en set. De programmeur kan een waarde krijgen bij een specifieke index met behulp van de get-methode. De programmeur kan een waarde instellen op een specifieke index met behulp van de set-methode. De ‘indexOf’ wordt gebruikt om de index van een element te vinden.
In een lijst kunnen de bewerkingen worden uitgevoerd volgens de positie. De programmeur kan het data-element leveren dat aan de index moet worden toegevoegd. Het wordt dus toegevoegd aan de specifieke index. Als de programmeur geen index geeft, wordt het element aan het einde van de lijst toegevoegd. Het handhaaft ook de ingevoegde volgorde. Als element 1 wordt toegevoegd en vervolgens element2 wordt toegevoegd, dan komt element1 vóór element2.
Figuur 01: Lijst en Set
ArrayList, LinkedList, Vector zijn enkele klassen die List implementeren. In een ArrayList is toegang tot een element snel, maar het invoegen en verwijderen is lager. ArrayList is niet thread-safe. Toegang tot dezelfde ArrayList vanuit meerdere threads geeft mogelijk niet hetzelfde resultaat. In een LinkedList zijn de elementen zowel achterwaarts als voorwaarts gekoppeld. Het invoegen en verwijderen van elementen met behulp van een LinkedList is sneller dan de ArrayList. De LinkedList implementeert List en Queue Both. Vector lijkt op ArrayList, maar is veilig omdat alle methoden zijn gesynchroniseerd.
Wat is ingesteld?
Set is een interface die de collectie-interface uitbreidt. Omdat de Set-interface Verzameling uitbreidt, behoren alle methoden van Verzamelen ook tot Set. Een set ondersteunt geen dubbele waarden. Daarom kan de programmeur hetzelfde element niet twee keer opslaan. Het handhaaft een unieke reeks elementen. De SortedSet-interface breidt de Set-interface uit. SortedSet handhaaft de elementen in gesorteerde volgorde. De NavigableSet-interface breidt SortedSet uit. De NavigableSet biedt navigatiemethoden zoals lager, vloer, plafond enz.
HashSet, LinkedHashSet en TreeSet zijn enkele klassen die de Set-interface implementeren. De HashSet implementeert de Set-interface. Het handhaaft de ingevoegde volgorde niet. Als de waarden worden ingevoegd als a, x, b, kan het worden opgeslagen als, x, a, b. De LinkedSet handhaaft de ingevoegde volgorde. Als de elementen in a, x, b volgorde worden ingevoegd, is de opslagvolgorde a, x, b. De TreeSet implementeert Set en NavigableSet. Het handhaaft de volgorde van invoegen niet, maar slaat de elementen op in de gesorteerde volgorde. Als de ingevoegde volgorde a, c, b is, dan worden de elementen opgeslagen als a, b, c. Alle HashSet, LinkedHashSet en TreeSet hebben geen dubbele elementen.
Wat zijn de overeenkomsten tussen lijst en set?
- Zowel de lijst- als de set-interface breiden de collectie-interface uit.
- Zowel List als Set-ondersteuningsbewerkingen, zoals het toevoegen en verwijderen van elementen.
Wat is het verschil tussen lijst en set?
Lijst vs Set |
|
List Interface is de subinterface van Collection die methoden bevat om bewerkingen uit te voeren zoals invoegen, verwijderen op basis van de index. | Set Interface is een subinterface van Collection die methoden bevat voor het uitvoeren van bewerkingen zoals het invoegen en verwijderen van elementen met behoud van de unieke elementen. |
Lessen | |
ArrayList, Vector en LinkedList zijn klassen die de List-interface implementeren. | HashSet, LinkedHashSet en TreeSet zijn klassen die de Set-interface implementeren. |
Element duplicatie | |
List ondersteunt duplicatie van elementen. | Set ondersteunt geen duplicatie van elementen. Elementen zijn uniek. |
Samenvatting – Lijst vs Set
Collecties worden gebruikt om elementen dynamisch op te slaan. Programmeertalen zoals Java bieden een Collection-interface. Lijst en Set zijn twee interfaces die bij de Collectie-interface horen. Beide interfaces breiden Collection uit. Dit artikel besprak het verschil tussen List en Set. Het belangrijkste verschil tussen List en Set is dat List ondersteuning biedt voor het meerdere keren opslaan van hetzelfde element, terwijl Set geen ondersteuning biedt voor het meerdere keren opslaan van hetzelfde element. Set behoudt altijd unieke elementen.