Collections Fortgeschritten

Von veralteten synchronisierten Collections zu modernen Alternativen

Vector und Hashtable durch Collections ersetzen, die den tatsächlichen Anforderungen an Veränderbarkeit und Nebenläufigkeit entsprechen.

✕ Legacy synchronized collection
Hashtable<String, Session> sessions = new Hashtable<>();
sessions.put(id, session);
✓ Concurrent Collections API
ConcurrentMap<String, Session> sessions = new ConcurrentHashMap<>();
sessions.put(id, session);
Problem mit diesem Code entdeckt? Sag uns Bescheid.
🎯

Bewusste Nebenläufigkeit

Der gewählte Typ dokumentiert, ob eine gemeinsame Nutzung vorgesehen ist.

⚡

Bessere Skalierbarkeit

ConcurrentHashMap vermeidet bei normalen Zugriffen eine einzige Sperre für die gesamte Tabelle.

🧩

Moderne APIs

Funktioniert nahtlos mit aktuellen Collection- und ConcurrentMap-Operationen.

Alter Ansatz
Hashtable
Moderner Ansatz
ConcurrentHashMap
Seit JDK
5
Schwierigkeitsgrad
Fortgeschritten
Von veralteten synchronisierten Collections zu modernen Alternativen
Verfügbar

Weitgehend verfügbar seit JDK 5 (September 2004)

Vector und Hashtable synchronisieren jede Operation über veraltete APIs. Moderner Code sollte für Thread-lokale Daten normalerweise ArrayList oder HashMap und bei gemeinsam genutzten Mutationen speziell dafür entwickelte nebenläufige Collections verwenden.