Datastructuren van de Collections Framework

Gegevenstypen en uitzonderingen in Java

Jim White

Java Instructor

Wat is een framework

  • Een framework is een set herbruikbare typen met generieke functionaliteit
    • Voorbeelden: classes en interfaces
    • Verhoogt de kwaliteit van je applicatie
    • Voorkomt dat je alles vanaf nul bouwt
  • In Java worden frameworks geleverd in een of meer packages
  • Frameworks hebben richtlijnen en regels voor gebruik

Frameworks bieden kant-en-klare code met generieke functionaliteit

1 Foto door Ashkan Forouzani op Unsplash
Gegevenstypen en uitzonderingen in Java

Java-typen

Twee categorieën typen in Java:

  • Primitieve typen
    • byte, short, int, long, float, double, char, boolean
  • Referentietypen
    • Classes
    • Interfaces
    • Enums
    • Arrays
    • ...
Gegevenstypen en uitzonderingen in Java

De Collections Framework

  • Collections Framework: Java’s ingebouwde set generieke datastructuren
    • Een package met typen om een groep objecten op te slaan en te bewerken
  • Gedefinieerd in het java.util-package
    • Import is nodig om de frameworktypen te gebruiken
Gegevenstypen en uitzonderingen in Java

En hoe zit het met arrays?

  • Java-arrays kunnen een groep objecten of primitieven bevatten
    • De Collections Framework biedt een alternatief aan datastructuren
  • Beide hebben voor- en nadelen
Arrays Collections
Niet resizebaar Dynamisch van grootte (groeit en krimpt)
Slaat primitieven of objecten op Slaat alleen objecten op
Homogeen - elementen moeten gelijk zijn Heterogeen - objecten mogen verschillen
Speciale notatie [] voor toegang Gebruikt methods om objecten te benaderen
Speciale initialisatiesyntaxis {} Gebruik new (geen speciale initialisatie)
Gegevenstypen en uitzonderingen in Java

Types in de Collections Framework

  • De Collections Framework heeft twee basistypen: Collection en Map
    • Weergegeven door twee interfaces: java.util.Collection & java.util.Map
    • Beide hebben meerdere implementerende classes
  • import java.util.*; om elk type uit de Collections Framework te gebruiken

Collections Framework heeft twee basistypen: Collection en Map

Gegevenstypen en uitzonderingen in Java

Collection

  • Collection definieert meerdere manieren om objecten te groeperen
    • Vastgelegd via extra interfaces
  • Geordende groep: List
  • Ongeordende groep: Set
  • First-in-first-out: Queue
    • Werkt als een wachtrij
  • .add(Object) en .remove(Object) passen elke Collection aan

Collection bevat List, Set en Map

Gegevenstypen en uitzonderingen in Java

Map

  • Map-datastructuren werken als een telefoonboek of woordenboek
    • "key"-objecten -> naar "value"-objecten
    • In een telefoonboek: naam -> telefoonnummer
    • In een woordenboek: woord -> definitie
  • Gebruik de key om een Map te wijzigen
    • .put(Object key, Object value) om toe te voegen
    • .remove(Object key) om te verwijderen
  • Veel Map-typen, zoals HashMap

Map werkt als een telefoonboek of woordenboek

Gegevenstypen en uitzonderingen in Java

Generics

  • Collections en Maps zijn "geparametriseerd"
    • Java generics geven de objecttypen in een Collection of Map aan
    • Generic-syntaxis: <Class> met een typeparameter.
      • < > heet de diamond-operator
ArrayList<String> list = new ArrayList<String>();  // Constructie met generics
Gegevenstypen en uitzonderingen in Java

Generics en typesafety

  • Generics bieden betere typesafety
    • Beperkt welke objecten in Collection en Map mogen
ArrayList<String> list = new ArrayList<String>();
list.add("hello");  // Een String toevoegen is oké
list.add(new Integer(5));  // Een Integer toevoegen geeft compile-fout
Gegevenstypen en uitzonderingen in Java

Generics niet gebruiken

ArrayList list2 = new ArrayList();  // Legaal maar niet specifiek

list2.add("hello");                 // Nu kan elk type object worden toegevoegd
list2.add(new Integer(5));
Gegevenstypen en uitzonderingen in Java

Variabele declaratie en toekenning

  • Variabele declaratie en toekenning kunnen apart
ArrayList<String> list = new ArrayList<String>(); // Éénregelige declaratie en toekenning

ArrayList<String> list2;    // Variabele declaratie...
list2 = new ArrayList<String>();  // ... en toekenning kan in 2 stappen
Gegevenstypen en uitzonderingen in Java

Laten we oefenen!

Gegevenstypen en uitzonderingen in Java

Preparing Video For Download...