Collection Interfaces Core-Collection-Interfaces (Begriff, Ziele, Standard) Liste der Core Interfaces List Set Queue Dequeue SortedSet NavigableSet Map SortedMap NavigableMap Collections Zusammenfassung @!Beispiele+Links
Das Interface Collection Das Superinterface Diagramm Diagramm Collection-Standard-Methoden Zusammenfassung
Implementierungsklassen Implementierungsklassen Diagramm Array[T]> Lists ArrayList<E> LinkedList<E> CopyWriteOnList<E> Set<E> Implementations HashSet<E> TreeSet<E> EnumSet<E> CopyWriteOnArraySet<E> Queue<E> Implementations LinkedList<E> PriorityQueue<E> Deque<E> Implementations LinkedList<E> ArrayDeque<E> Map<E> Implementations HashMap<K,V> LinkedHashMap<K,V> TreeMap<K,V> WeakHashMap<K,V> IdentityHashMap<K,V> EnumMap<K,V> ConcurrentHashMap<K,V>** ConcurrentSkipList<K,V>** SortedSet<E> Implementations TreeSet<E> EnumSet<E> BlockingQueue<E> Implementations ArrayBlockingQueue<E> LinkedBlockingQueue<E> LinkedBlockingQueue<E> PriorityBlockingQueue<E> SynchronousQueue<E> DelayQueue<E> Legacy Types für Listen Vector Hashtable Stack Stack HashSet<E> HashSet<E> @!Descriptions @!Examples @!Index/Examples
Overview
JAVA-B2 | Overview
In diesem Teil JAVA-B2 befassen wir uns als Vertiefung zur Themen der objektorientierten Programmierung in Java mit der Einführung mitunter in das Java Collection Framework. Collection Interfaces und zugehörige Implementierungsklassen werden von allen Java Packages in sehr großem Umfang genutzt.
JAVA-B2 | Collections Framework
Collections
Das Java Collections Framework von Java, Java 8, Java 16
In der Einführung in Collection geben wir einen Einblick, was Collections sind, wie man mit Collections als Entwickler bessere Programme realisiert und für alle Beteiligten den Job etwas einfacher macht.
Wir geben einen Überblick über die zentralen Elemente welche in der Summe des Java Collection Framework bilden: Die Collection Interfaces, die Implementierungsklassen für Collections sowie auch die zugehörigen Algorithmen von Collections in Java.
JAVA-B2 | Collections Core-Interfaces
Übersicht über alle Collections Core-Interfaces
In der Einführung in Collection geben wir einen Einblick, was Collections sind, wie man mit Collections als Entwickler bessere Programme realisiert und für alle Beteiligten den Job etwas einfacher macht.
Wir geben einen Überblick über die zentralen Elemente welche in der Summe des Java Collection Framework bilden: Die Collection Interfaces, die Implementierungsklassen für Collections sowie auch die zugehörigen Algorithmen von Collections in Java.
JAVA-B2 | Collections «Collection Interface»
Das Superinterface «Collection»
Das Interface «Collection» ist das Superinterface für alle weiteren Interfaces im Java Collection Framework und stellt dahingehend mit seinen Methoden auch den Standard für alle Implementierungsklassen dar.
Seit Java 8 wurde im Zusammenhang mit dem Java Collection Framework
die Stream API eingeführt und für alle Implementierungklassen über
das Collection-Interface durchgesetzt. Das Verständnis dieses
Interfaces Collection ist die
zwingende Voraussetzung für das Verständnis der Nutzer der übrigen
Interfaces und Klassen.
JAVA-B2 | Collections Implementierungsklassen
Implementierungsklassen der jeweiligen Interfaces
Das Java Collections Framework beinhaltet eine Reihe von Implementierungsklassen, von denen
mitunter ArrayList<T> als List sowie
HashMap<K,V> und
LinkedHashMap<K,V> zum Grundlagenwissen
zählen.
Diese Implementierungsklassen sind eine Option, wie man Sammlungen von Daten als Alternative zu Arrays erstellen und verwalten kann, auch wenn die zugehörigen Instanzen zumeist in Variablen gespeichert werden, deren Typ ein Interfaces ist.
Lambda-Expressions
Collection | Lambda-Expressions (Querverweis)
Die Syntax sowie auch die Besonderheiten beim Scope von Lambda-Expressions hat ein eigenes Kapitel, siehe JAVA-B1 Lambda-Expressions.
Die eigentliche Zielsetzung unabhängig von der Syntax von Lambdas besteht darin, Methoden wie Werte referenzieren zu können. Da @FunctionalInterface annotierte Interfaces den Typ von Lambdas definieren, steht die Funktionale Programmierung in Zusammenhang mit JAVA-B1 Nested Classes, JAVA-B1 Anonymous Class, JAVA-B1 Lambda-Expressions, JAVA-B1 Interface-Default-Methods JAVA-B1 Method-References.
https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html
java.util.concurrent
Collection | java.util.concurrent
Nebenläufige Programmierung, asynchrone Programmierung, Multithreading, Threads, Runnables, Multi-Prozessor-Anwendungen, synchronized als Keyword: Spannend wird es bei JAVA immer dann, wenn man nicht nur ein Programm zweimal startet sondern innerhalb eines Programms die selbe Methode in zwei und mehr Prozessen auf verschiedenen Prozessoren durchlaufen wird und sich ggf. gegenseitig die lokalen Variablen überschreiben. Das sollte man mal richtig verstanden haben.
Im Zuge der Einführung der Stream-API wird für die parallele Verarbeitung inzwischen aber parallelStream() verwendet, so dass die Verwendung von new Thread(..) verzichten wird.
Auf parallele, nebenläufige Programmierung, Threads, Runnables, Multithreading, asynchrone Programmierung wird in Asynchrone Programmierung und Thread-Pools eingegangen.
java.util.concurrent.Flow: Flow-Controlled Components mit Publisher, welche Items produzieren, Subscribers welche ein oder mehr Items als Consumer verbrauchen, alles organisiert und gemanaged durch Subscription. Flow entspricht der Reactive-Streams Spezifikation, JAVA JDK 9 (https://www.reactive-streams.org/).
https://docs.oracle.com/en/java/javase/18/docs/api/java.base/java/util/concurrent/package-summary.html
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/concurrent/Flow.html
Flow.Processor (T,R) - A component that acts as both a Subscriber and Publisher, Flow.Publisher (T) - A producer of items (and related control messages) received by Subscribers, Flow.Subscriber (T) - A receiver of messages, Flow.Subscription - Message control linking a Flow.Publisher and Flow.Subscriber.
ExecutorService ForkJoinPool.commonPool() Future (?)
FootNotes
UIO3 Es ist einfacher als Du denkst.
Stelle noch heute Deine Anfrage.

