De meeste programmeertalen gebruiken arrays om een reeks gegevens van hetzelfde type op te slaan. Een belangrijk nadeel van arrays is dat, zodra de array-grootte is gedeclareerd, deze niet kan worden gewijzigd. Als de programmeur waarden wil opslaan die de array-grootte overschrijden, 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 hulp van collecties. Er zijn verschillende soorten collecties beschikbaar in programmeertalen zoals Java. Lijst en Set zijn interfaces van collectieshiërarchie. De basisinterface voor andere interfaces is Verzameling. De belangrijk verschil tussen Lijst en Set is dat Lijst ondersteunt hetzelfde element meerdere keren op te slaan, terwijl Set niet hetzelfde meerdere keren opslaat. Daarom staat een set duplicatie niet toe.
1. Overzicht en belangrijkste verschil
2. Wat is lijst
3. Wat is ingesteld
4. Overeenkomsten tussen lijst en set
5. Vergelijking zij aan zij - lijst vs in tabelvorm
6. Samenvatting
De lijst is een interface die de collectie-interface uitbreidt. Er is een aantal methoden in de Collection-interface. De toevoegmethode 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 method' om de elementen uit de verzameling te verwijderen. De methode bevat helpt om te bepalen of een specifiek object aanwezig is in de lijst of niet. De 'containsAll' is om te bepalen of een verzameling objecten aanwezig is in de verzameling. De iterator-methode wordt gebruikt om door de items van de lijst te bladeren. Naarmate Lijst Verzameling uitbreidt, behoren alle verzamelmethoden tot Lijst. Anders dan deze methoden, heeft de lijst methoden zoals ophalen en instellen. De programmeur kan een waarde krijgen bij een specifieke index met behulp van de methode get. Het programmeerapparaat kan een waarde instellen op een specifieke index met behulp van de ingestelde methode. De 'indexOf' wordt gebruikt om de index van een element te vinden.
In een lijst kunnen de bewerkingen worden uitgevoerd op basis van de positie. De programmeur kan het gegevenselement leveren dat aan de index moet worden toegevoegd. Dus het zal worden toegevoegd aan de specifieke index. Als de programmeur geen index geeft, wordt het element toegevoegd aan het einde van de lijst. Het onderhoudt ook de ingevoegde volgorde. Als element 1 is toegevoegd en vervolgens element2 is toegevoegd, dan zal element1 vóór element2 staan.
Figuur 01: lijst en set
ArrayList, LinkedList, Vector zijn enkele klassen die Lijst implementeren. In een ArrayList is toegang tot een element snel, maar 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 gekoppeld aan zowel backward als forward. Het invoegen en verwijderen van elementen met behulp van een LinkedList is sneller dan de ArrayList. De LinkedList implementeert zowel lijst als wachtrij. Vector is vergelijkbaar met ArrayList, maar het is loopvlakveilig omdat alle methoden zijn gesynchroniseerd.
Set is een interface die de collectie-interface uitbreidt. Omdat de Set-interface de Verzameling verlengt, zijn alle verzamelmethoden ook van Set. Een set biedt geen ondersteuning voor duplicatiewaarden. Daarom kan het programmeerapparaat hetzelfde element niet twee keer opslaan. Het onderhoudt een unieke reeks elementen. De interface van SortedSet breidt de Set-interface uit. SortedSet onderhoudt 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 Set interface. Het onderhoudt de ingevoegde volgorde niet. Als de waarden worden ingevoegd als a, x, b kan deze worden opgeslagen als, x, a, b. De LinkedSet onderhoudt de ingevoegde volgorde. Als de elementen worden ingevoegd in de volgorde a, x, b, is de opslagvolgorde a, x, b. De TreeSet implementeert Set en NavigableSet. De volgorde van invoegen wordt niet behouden, maar de elementen worden in de gesorteerde volgorde opgeslagen. Als de ingevoegde volgorde a, c, b is, worden de elementen opgeslagen als a, b, c. Alle HashSet, LinkedHashSet en TreeSet zullen geen dubbele elementen bevatten.
List vs Set | |
Lijstinterface is de subinterface van Verzameling die methoden bevat voor het uitvoeren van bewerkingen zoals invoegen, verwijderen op basis van de index. | Set Interface is een subinterface van Collection die methoden bevat om bewerkingen uit te voeren, zoals invoegen, elementen verwijderen, terwijl de unieke elementen behouden blijven. |
Klassen | |
ArrayList, Vector en LinkedList zijn klassen die de lijstinterface implementeren. | HashSet, LinkedHashSet en TreeSet zijn klassen die Set-interface implementeren. |
Element Duplicatie | |
Lijst ondersteunt duplicatie van elementen. | Set ondersteunt geen duplicatie van elementen. Elementen zijn uniek. |
Collecties worden gebruikt om elementen dynamisch op te slaan. Programmeertalen zoals Java bieden een Collection-interface. Lijst en Set zijn twee interfaces die behoren tot de Collection-interface. Beide interfaces breiden Collection uit. In dit artikel is het verschil tussen Lijst en set besproken. Het belangrijkste verschil tussen Lijst en Set is dat Lijst ondersteunt hetzelfde element meerdere keren op te slaan, terwijl Set niet hetzelfde meervoudige tijdgeheugen opslaat. Set behoudt altijd unieke elementen.
1.Point, zelfstudies. "Java-collecties.", Tutorials Point, 8 januari 2018. Beschikbaar Hier