Java Data Structures: Kernklassen & Collections Framework Verkend
De datastructuren die door het Java utility-pakket worden geboden, zijn krachtig en voeren een breed scala aan functies uit. Deze datastructuren bestaan uit de volgende interfaces en klassen:
- Enumeration
- BitSet
- Vector
- Stack
- Dictionary
- Hashtable
- Properties
Al deze klassen zijn nu legacy (verouderd) en Java 2 heeft een nieuw framework geïntroduceerd genaamd Collections Framework, wat in het volgende hoofdstuk wordt besproken.
De Enumeration Interface
De Enumeration-interface is zelf geen datastructuur, maar het is zeer belangrijk in de context van andere datastructuren. De Enumeration-interface definieert een manier om opeenvolgende elementen uit een datastructuur op te halen.
Bijvoorbeeld, Enumeration definieert een methode genaamd nextElement die gebruikt wordt om het volgende element in een datastructuur op te halen die meerdere elementen bevat.
Voor meer details over deze interface, zie The Enumeration.
De BitSet Klasse
De BitSet-klasse implementeert een groep bits of vlaggen die individueel ingesteld en gewist kunnen worden.
Deze klasse is erg handig in gevallen waar je een set Booleaanse waarden wilt bijhouden; je wijst gewoon een bit aan elke waarde toe en stelt of wist deze naar behoefte.
Voor meer details over deze klasse, zie The BitSet.
De Vector Klasse
De Vector-klasse is vergelijkbaar met een traditionele Java-array, met het verschil dat deze kan groeien om nieuwe elementen te accommoderen.
Net als een array kunnen elementen van een Vector-object worden benaderd via een index in de vector.
Het mooie aan de Vector-klasse is dat je je geen zorgen hoeft te maken over het instellen van een specifieke grootte bij creatie; het krimpt en groeit automatisch wanneer nodig.
Voor meer details over deze klasse, zie The Vector.
De Stack Klasse
De Stack-klasse implementeert een last-in-first-out (LIFO) stapel van elementen.
Je kunt een stack letterlijk zien als een verticale stapel objecten; wanneer je een nieuw element toevoegt, wordt het bovenop de andere gestapeld.
Wanneer je een element van de stack haalt, komt het van de top af. Met andere woorden: het laatste element dat je aan de stack toevoegde, is het eerste dat er weer af komt.
Voor meer details over deze klasse, zie The Stack.
De Dictionary Klasse
De Dictionary-klasse is een abstracte klasse die een datastructuur definieert voor het mappen van sleutels naar waarden.
Dit is handig in gevallen waar je data via een specifieke sleutel wilt benaderen in plaats van via een integer-index.
Omdat de Dictionary-klasse abstract is, biedt deze alleen het framework voor een sleutel-gebaseerde datastructuur in plaats van een specifieke implementatie.
Voor meer details over deze klasse, zie The Dictionary.
De Hashtable Klasse
De Hashtable-klasse biedt een manier om data te organiseren op basis van een door de gebruiker gedefinieerde sleutelstructuur.
Bijvoorbeeld, in een adreslijst hashtable kun je data opslaan en sorteren op basis van een sleutel zoals postcode in plaats van op naam van een persoon.
De specifieke betekenis van sleutels met betrekking tot hashtables is volledig afhankelijk van het gebruik van de hashtabel en de data die deze bevat.
Voor meer details over deze klasse, zie The Hashtable.
De Properties Klasse
Properties is een subklasse van Hashtable. Het wordt gebruikt om lijsten van waarden te onderhouden waarin de sleutel een String is en de waarde ook een String is.
De Properties-klasse wordt door veel andere Java-klassen gebruikt. Bijvoorbeeld, het is het type object dat wordt teruggegeven door System.getProperties() bij het ophalen van omgevingswaarden.
Voor meer details over deze klasse, zie The Properties.
Java
- Java's final-sleutelwoord begrijpen: variabelen, methoden en klassen
- Java instanceof operator: een uitgebreide gids
- Java encapsulatie meesteren: een praktische gids tot data hiding
- Java geneste static classes begrijpen: gebruik, verschillen en voorbeelden
- Java anonieme inner classes meesteren: definitie, syntax en praktische voorbeelden
- Java Singleton patroon uitgelegd: hoe veilig te implementeren en gebruiken
- Java Reflectie meesteren: klassen, methoden en velden inspecteren tijdens runtime
- Java ObjectOutputStream: Serialisatie, methoden en praktische voorbeelden
- Java Generics: Herbruikbare, type-veilige code bouwen
- Java-bestandsbewerkingen onder de knie krijgen met java.io – Aanmaken, lezen, schrijven en verwijderen
- Java Data Structures: Kernklassen & Collections Framework Verkend