Maps

Datentypen und Exceptions in Java

Jim White

Java Developer

Maps sind Nachschlagetabellen

  • Maps dienen als Nachschlage-Tabellenstrukturen
    • Speichere einen "Wert" unter einem bestimmten "Schlüssel"
    • Nutze den "Schlüssel", um den gespeicherten "Wert" abzurufen
  • Beispiel: beim Arzt anrufen
    • Sie suchen die Patientenakte (das value-Objekt) über Name/Geburtsdatum (der key)

Maps dienen als Nachschlagestruktur, z. B. wenn die Praxis nach Name und Geburtsdatum fragt, um die Patientenakte zu finden

Datentypen und Exceptions in Java

Map-Schnittstelle

  • Die Map-Schnittstelle definiert Operationen auf Schlüssel-Wert-Paaren
    • Wie man einen Wert unter einem bestimmten Schlüssel speichert/"put"
    • Wie man den Wert zu einem Schlüssel aus der Map „remove"t
    • Wie man den Wert zu einem gegebenen Schlüssel abruft
  • Mehrere Map-Implementierungen mit ähnlichem Verhalten
    • Eine gängige Implementierung ist HashMap
1 See https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/Map.html for details
Datentypen und Exceptions in Java

HashMap: Schlüssel und Werte

Map- bzw. HashMap-Schlüssel und -Werte können gleich oder unterschiedlich typisiert sein

Datentypen und Exceptions in Java

HashMap erstellen

HashMap<Integer, String> map = new HashMap<Integer, String>();
  • Der parametrisierte/generische HashMap-Konstruktor erwartet zwei Typen

    • Der erste Typ = der key-Typ

      Der erste Generik-Parameter bei HashMap ist für die Schlüssel

    • Der zweite Typ = der value-Typ

      Der zweite Generik-Parameter bei Hashmap ist für die Werte

Die Schlüssel- und Wertetypen in den Generics legen die Datentypen fest

  • Erfordert den Import von java.util.HashMap
Datentypen und Exceptions in Java

HashMap-Methoden

  • Mit .put(key,value) Schlüssel/Wert-Paare hinzufügen
  • Mit .remove(key) das Paar zum Schlüssel entfernen
  • Mit .get(key) den Wert zum Schlüssel abrufen
import java.util.HashMap
...
HashMap<Integer, String> map
    = new HashMap<Integer, String>();
map.put(0, "Jim");
map.put(1, "James");
map.put(3, null);
map.put(4, "James");
map.remove(0);
System.out.println(map);
{1=James, 3=null, 4=James}
String nickname = map.get(1);
System.out.println(nickname);
James
Datentypen und Exceptions in Java

Collections

  • java.util.Collections ist eine Hilfsklasse
  • Unterstützt u. a. Sortieren, Füllen, Kopieren, Suchen
    • Enthält nur static-Methoden
1 See https://docs.oracle.com/en/java/javase//21/docs/api/java.base/java/util/Collections.html
Datentypen und Exceptions in Java

Collection-Methoden

  • Viele Objekte zu einer List hinzufügen
    • addAll(List list, Object a, b, ...)
  • Anzahl eines Objekts in einer Collection ermitteln
    • frequency(Collection c, Object o)
  • Objekte in einer List umkehren
    • reverse(List list)
  • Objekte in einer List sortieren
    • sort(List list)
  • Alle Objekte in einer List durch ein anderes ersetzen
    • fill(List a, Object o)
ArrayList<String> x = new ArrayList<String>();
Collections.addAll(x,
    "milk", "bread", "eggs", "milk");
System.out.println(x);

int cnt = Collections.frequency(x, "milk"); System.out.println(cnt);
Collections.reverse(x); System.out.println(x);
Collections.sort(x); System.out.println(x);
Collections.fill(x, "sugar"); System.out.println(x);
[milk, bread, eggs, milk]

2
[milk, eggs, bread, milk]
[bread, eggs, milk, milk]
[sugar, sugar, sugar, sugar]
Datentypen und Exceptions in Java

Arrays

  • Manchmal musst du ein Array (z. B. int[]) in eine List umwandeln
    • Java-Arrays sind nicht veränderbar; oft müssen Elemente wachsen/schrumpfen
    • List kann mehr (Suchen, Sortieren usw.)
  • java.util.Arrays ist eine weitere Hilfsklasse
    • Erlaubt das Umwandeln eines Java-Arrays in eine List
Datentypen und Exceptions in Java

Arrays: Beispiel

String[] arrayCountries = {"France", "Japan", "Brazil", "Egypt", "China"};
List<String> countries = Arrays.asList(arrayCountries);
System.out.println(countries);
[France, Japan, Brazil, Egypt, China]
Datentypen und Exceptions in Java

Lass uns üben!

Datentypen und Exceptions in Java

Preparing Video For Download...