Java Collection Framework

Überblick Java Collections

Die Klassen des Java Collection Framework in java.util stellen vier Familien von abstrakten Datentypen und Funktionen zur Verfügung:

  • Listen (abstrakte Klasse List): geordnete Datenstrukturen auf die man wie auf Felder mit einem numerischen Index zugreifen kann. Im Unterschied zu Feldern (Array) erlauben sie das listentypische Einfügen an einer beliebigen Stelle
  • Mengen (abstrakte Klasse Set): Eine Implementierung mathematischer Mengen. Objekte können nur einmal in einer Menge vorkommen. Man kann prüfen ob bestimmte Objekte in einer Menge enthalten sind. Eine Reihenfolge oder Ordnung in der Menge ist nicht relevant.
  • Verzeichnisse (abstrakte Klasse Map): Verzeichnisse können als verallgemeinerte Felder angesehen werden. Felder erlauben einen direkten zugriff mit einem numerischen Index. Verzeichnisse erlauben die Wahl einer beliebigen Zugriffskriteriums. Man kann zum Beispiel Personen nach ihrem Nachnamen verwalten und eine Person mit Hilfe eines gegebenen Nachnamens aurufen.
  • Warteschlangen (abstrakte Klasse Queue): Warteschlangen sind Listen die nach dem FIFO Prinzip (First In , First Out) aufgebaut sind. Sie verfügen über keinen wahlfreien Zugriff.

Um mit dem Java Collection Framework zu arbeiten muss das java.util importiert werden

import java.util.*;

public class Array {
    public static void main(String[] args) {

    }
}

Array List

Der Unterschied zwischen einem integrierten Array und einer ArrayList in Java besteht darin, dass die Größe eines Arrays nicht geändert werden kann (wenn Sie Elemente zu einem Array hinzufügen oder daraus entfernen möchten, müssen Sie ein neues erstellen). Zu einer ArrayList hingegen können Sie jederzeit Elemente hinzufügen oder daraus entfernen. Auch die Syntax ist etwas anders:

Die allgemeine Syntax lautet:

ArrayList<Type> arrayList= new ArrayList<>();

„Type“ steht hierbei für den jeweiligen Datentyp der Java ArrayList.

HashMap = Dictonary

In der ArrayList werden Arrays Elemente als geordnete Sammlung gespeichert und Sie mit einer Indexnummer (int-Typ) darauf zugreifen müssen. Ein HashMap hingegen speichert Elemente in „Schlüssel/Wert“-Paaren und Sie können über einen Index eines anderen Typs (z. B. einen String) darauf zugreifen. Ein Objekt wird als Schlüssel (Index) für ein anderes Objekt (Wert) verwendet. Es kann verschiedene Typen speichern: String-Schlüssel und Integer-Werte oder denselben Typ, wie: String-Schlüssel und String-Werte. In anderen Programmiersprachen wird das als Dictonary bezeichnet.

import java.util.*;
public class Mitarbeiter_HashMap{

public static void main(String[] args) {
    HashMap<String,String> 
    mitarbeiter = new HashMap<String,String>();
    mitarbeiter.put("Michi","Monster");
    mitarbeiter.put("Fridolin","Müller");
    mitarbeiter.put("Jasmin","Meier");
    System.out.println(mitarbeiter);
  }
}