Java Collections Framework (JCF)
|
|
- Rudolph Maurer
- vor 5 Jahren
- Abrufe
Transkript
1 Algorithmen & Datenstrukturen Bachelor Medieninformatik Fachbereich DCSM FH Wiesbaden University of Applied Sciences Thomas Frenken
2 Inhaltsverzeichnis 1. Das Java Collections Framework Definition und Abgrenzung 2. Interfaces des JCF Von Collections, Sets, Lists, Queues und Maps 3. Implementierung und Algorithmen Klassen und ihr praktischer Einsatz 4. Weiterführende Themen Um sich erinnern zu können 5. Zusammenfassung Thomas Frenken 2 / 23
3 Das Java Collections Framework... ist ein Collections Framwork (ach ne ;o), in C++ nennt sich das CF Standard Template Library (STL) Collections: Gruppiert gleichartige Objekte (Container) (Collection) Framework: Bietet einheitliche Struktur für Speicherung und Manipulation an Besteht aus: Interfaces Abstrakte Datentypen (Schnittstelle unabhängig von Implementierung) Implementierungen Konkrete Datentypen (implementieren Interfaces) Algorithmen: Sinnvolle Operationen, polymorph in ihrer Vererbungshierarchie Thomas Frenken 3 / 23
4 Das Java Collections Framework Warum Framework verwenden, wenn man es selber machen kann? Weniger Arbeitsaufwand: Sobald man versteht, was man tut, darf man Arbeit sparen Effektivere Programme: Von Experten geschrieben (fehlerlos) und auf die Sprache Java optimiert (schnell und ressourcenschonend) Erleichtert Umstieg: Andere Programmier- / Skriptsprachen haben ähnliche Frameworks (Implementierung anders, Schnittstellen ähnlich) Erleichtert Austauschbarkeit: Alle verwenden diesen Standard, verbindet verschiedene Bibliotheken Erleichtert Entwicklung neuer Collections Thomas Frenken 4 / 23
5 Interfaces des JCF Zwei Vererbungshierarchien (alle Interfaces generisch) Collection: Allgemeinste Form eines Containers, schreibt die grundlegenden Operationen vor (i.d.r. nicht implementieren, sondern Subklasse) Set: Ansammlung von eindeutigen (keine Duplikate), zunächst ungeordneten Elementen List: Ansammlung geordneter, nicht eindeutiger Elemente (Sequenz), Index-Zugriff Queue: Warteschlagen (auf semantischer Ebene unterschieden) Map: Ordnet Werte einem Schlüssel zu, Schlüssel eindeutig, Werte nicht, keine garantierte Reihenfolge Thomas Frenken 5 / 23
6 Interfaces des JCF - Collection Interface-Definition public interface Collection<E> extends Iterable<E> { // Basic operations int size(); boolean isempty(); boolean contains(object element); boolean add(e element); //optional boolean remove(object element); //optional Iterator<E> iterator(); } // Bulk operations boolean containsall(collection<?> c); boolean addall(collection<? extends E> c); //optional boolean removeall(collection<?> c); //optional boolean retainall(collection<?> c); //optional void clear(); //optional // Array operations Object[] toarray(); <T> T[] toarray(t[] a); Optionale Methoden müssen, falls sie nicht ausimplementiert werden, eine OperationNotSupported-Exception werfen Umgekehrt: List<T> Arrays.asList(T[] a) Thomas Frenken 6 / 23
7 Interfaces des JCF - Collection Über Collections iterieren Der Iterator ist verwendbar auf allen Klassen, die das Interface Iterable implementieren, also auf ALLEN Klassen der Collection- und auch der Map-Hierarchie List<String> stringlist = new LinkedList<String>(); stringlist.add("..."); Iterator<String> it = stringlist.iterator(); while (it.hasnext()) { String student = it.next(); System.out.println("Name: "+student); } Während des Iterierens nur im Notfall Elemente entfernen und auch nur, falls die optionale Methode remove implementiert ist //oder mit foreach for (String student: stringlist) {... } public interface Iterator<E> { boolean hasnext(); E next(); void remove(); //optional } Thomas Frenken 7 / 23
8 Interfaces des JCF - Set Interface-Definition (gleich zu Collection), fügt Konvention keiner doppelten Elemente hinzu Sub-Interface SortedSet erlaubt es, Werte zu ordnen public interface Set<E> extends Collection<E> { // Basic operations int size(); boolean isempty(); boolean contains(object element); boolean add(e element); //optional boolean remove(object element); //optional Iterator<E> iterator(); // Bulk operations boolean containsall(collection<?> c); boolean addall(collection<? extends E> c); //optional boolean removeall(collection<?> c); //optional boolean retainall(collection<?> c); //optional void clear(); //optional } // Array Operations Object[] toarray(); <T> T[] toarray(t[] a); Thomas Frenken 8 / 23
9 Interfaces des JCF - List Interface-Definition, fügt im Wesentlichen Zugriff via Index und Ordnung hinzu public interface List<E> extends Collection<E> { // Positional access E get(int index); E set(int index, E element); //optional boolean add(e element); //optional void add(int index, E element); //optional E remove(int index); //optional boolean addall(int index, Collection<? extends E> c); //optional // Search int indexof(object o); int lastindexof(object o); // Iteration ListIterator<E> listiterator(); ListIterator<E> listiterator(int index); } // Range-view List<E> sublist(int from, int to); Thomas Frenken 9 / 23
10 Interfaces des JCF - List ListIterator, trägt Ordnung in Liste Rechnung ( doppelt verkettete Liste) public interface ListIterator<E> extends Iterator<E> { boolean hasnext(); E next(); boolean hasprevious(); E previous(); int nextindex(); int previousindex(); void remove(); //optional void set(e e); //optional void add(e e); //optional } ListIterator<String> it = stringlist.listiterator(); //Vorwärts ausgeben while (it.hasnext()) System.out.println("Vorwärts: "+it.nextindex()+" -> "+it.next()); //Rückwärts ausgeben while (it.hasprevious()) System.out.println("Rückwärts: "+it.previousindex()+" -> "+it.previous()); Thomas Frenken 10 / 23
11 Interfaces des JCF - Queue Interface-Definition public interface Queue<E> extends Collection<E> { E element(); boolean offer(e e); E peek(); E poll(); E remove(); } Standard-Ordnung FIFO (kann aber über Comparator-Interface verändert werden) Jede Methode zweimal, eine Variante wirft Fehler, andere liefert Standard-Wert Thomas Frenken 11 / 23
12 Interfaces des JCF - Map Interface-Definition Sub-Interface SortedMap erlaubt, Schlüssel oder Elemente zu ordnen public interface Map<K,V> { // Basic operations V put(k key, V value); V get(object key); V remove(object key); boolean containskey(object key); boolean containsvalue(object value); int size(); boolean isempty(); // Bulk operations void putall(map<? extends K,? extends V> m); void clear(); // Collection Views public Set<K> keyset(); public Collection<V> values(); public Set<Map.Entry<K,V>> entryset(); } // Interface for entryset elements public interface Entry { K getkey(); V getvalue(); V setvalue(v value); } Thomas Frenken 12 / 23
13 Implementierung und Algorithmen JCF bietet eine Reihe von Implementierung für verschiedene Zwecke General-Purpose: Implementierung für den alltäglichen Gebrauch (nicht synchronized, also nicht thread-safe) Special-Purpose: Implementierung getrimmt auf bestimmte Fähigkeiten (werden selten gebraucht) Concurrent: Synchronized, daher thread-safe, aber single-thread Performance niedriger (noch seltener gebraucht) Wrapper: Zusatzfunktionalität nach dem Decorator-Pattern (manchmal nützlich)... Abstract: Abstrakte Klassen für Eigenimplementierungen Thomas Frenken 13 / 23
14 Implementierung und Algorithmen Interface vs. Implementierung Wann immer möglich gegen Interfaces implementieren (so allgemein wie möglich, so spezifisch wie möglich) Warum? Einheitliche Schnittstelle, erlaubt Austauschbarkeit Kapselung und Geheimnisprinzip Erleichtert Arbeit im Team ArrayList<String> meineliste = new ArrayList<String>(); //Elemente ans Ende einfügen O(1) meineliste.add("student1"); meineliste.add("student2"); meineliste.add("student3"); //teuer, weil Aufschieben O(n) meineliste.set(0, "Student4"); //und nu? Geloost! BOO! BOO! BOO! List<String> meineliste = new LinkedList<String>(); //Elemente ans Ende anfügen O(1), mehr Speicher meineliste.add("student1");... //optimiert, daher O(1) meineliste.set(0, "Student4"); YEAH! YEAH! YEAH! Thomas Frenken 14 / 23
15 Implementierung und Algorithmen - Set Drei General-Purpose Implementierung: HashSet: Eine dynamische Hashtabelle, O(1) für Standard-Operationen, Standard- Kapazität 16, erweiterbar sich selbstständig (Achtung teuer), je nach load factor, keine garantierte Ordnung (meist entsprechend Object.hashCode()) LinkedHashSet: Wie HashSet, aber alle Einträge über eine LinkedList verbunden, daher Iterierung in Einfügereihenfolge (sofern nicht verändert) möglich TreeSet: Ein Baum, garantiert Ordnung und O(log n) für die meisten Operationen, implementiert auf Basis von Rot-Schwarz-Bäumen Zwei Special-Purpose Implementierung: EnumSet und CopyOnWriteArraySet Thomas Frenken 15 / 23
16 Implementierung und Algorithmen - List Zwei General-Purpose Implementierung: ArrayList: Ein Array mit Listenfunktionalität, schneller Index-Zugriff (O(1)), Löschen und Einfügen an Index dafür O(n) LinkedList: Schnell beim Einfügen und Löschen (O(1)), dafür langsamer Index- Zugriff (O(n)) (implementiert auch Queue-Interface), Speicherverbrauch Eine Special-Purpose Implementierungen: CopyOnWriteArrayList Thomas Frenken 16 / 23
17 Implementierung und Algorithmen - Map Drei General-Purpose Implementierung: HashMap: Dynamische, assoziative Hashtabelle (ähnlich HashSet), meist O(1) Map<Integer, String> platzierungen = new HashMap<Integer, String>(); platzierungen.put(1, "Schnellster"); platzierungen.put(2, "Weniger Schneller"); LinkedHashMap: Wie HashMap, aber alle Einträge über eine LinkedList verbunden, daher Iterierung in Einfügereihenfolge (sofern nicht verändert) möglich (ähnlich LinkedHashSet) TreeMap: Ein assoziativer Baum, garantiert Ordnung und O(log n) für die meisten Operationen (implementiert als Rot-Schwarz-Baum) Drei Special-Purpose Implementierungen: EnumMap, WeakHashMap und IdentityHashMap Thomas Frenken 17 / 23
18 Implementierung und Algorithmen - Algorithmen Eine Reihe von Standard-Aufgaben sind bereits in der Klasse java.util.collections vorimplementiert, funktionieren auf vielen Klassen der Collection-Hierarchie (wo es Sinn macht) Sortieren: Collections.sort(List<T> list) verwendet modifizierte Variante von mergesort (garantiert O(n log n)) List<String> list = Arrays.asList(args); Collections.sort(list); Mischen: Collections.shuffle(List<?> list) Suchen: Collectins.binarySearch(List<? extends Comparable<? super T>> list, T key)verwendet binäre Suche (vorher sortieren) Thomas Frenken 18 / 23
19 Implementierung und Algorithmen - Algorithmen Umkehren: Collections.reverse(List<T> list) Vertauschen: Collections.swap(List<?> list, int i, int j) Zählen: Collections.frequency(Collection<?> c, Object o) Schnittmenge: Collections.disjoint(Collection<?> c1, Collection<?> c2) Extreme: Collections.min(Collection<?> coll), Collectins.max(Collection<?> coll) Ersetzen: Collections.replaceAll(List<T> list, T oldval, T newval)... Thomas Frenken 19 / 23
20 Weiterführende Themen - Wrapper Fügen nach dem Decorator-Pattern extra Funktionalität zu einem Interface hinzu / nehmen Funktionalität weg (via Factory) Zwei wichtige Wrapper: Synchronized Wrappers: Ermöglichen Thread-Safety, z.b. für List public static <T> List<T> synchronizedlist(list<t> list); List<Type> list = Collections.synchronizedList(new ArrayList<Type>()); Unmodifiable Wrappers: Verhindert Veränderung nach Erstellen einer Collection, indem alle Operationen eine UnsupportedOperationException werfen, z.b. für List public static <T> List<T> unmodifiablelist(list<? extends T> list); List<Type> list = Collections.unmodifiableList(new ArrayList<Type>()); Thomas Frenken 20 / 23
21 Weiterführende Themen Custom Implementations Selten notwendig, eigene Collections zu schreiben: Zusätzliche Funktionalität Optimierung für spezielle Umgebung Persistenz Spezielle abstrakte Klassen vorgesehen (erleichtert Arbeit), verwenden, weil Wiederverwendbarkeit erhöht wird (man kann auch direkt die Interfaces verwenden) AbstractCollection AbstractSet AbstractList AbstractSequentialList AbstractQueue AbstractMap Thomas Frenken 21 / 23
22 Zusammenfassung JCF ist das Collections Framework der Sprache Java Abstrakte Datentypen (Interfaces) Konkrete Datentypen (Implementierungen) für verschiedene Zwecke Algorithmen Verwenden weil Optimiert für Java Weniger Arbeit, akzeptiert und leicht austauschbar Vier wichtige Hierarchien Set (HashSet) List (ArrayList) Map (HashMap) Queue (LinkedList) TROTZDEM wichtig zu wissen, welche Datenstruktur welche Vorteile hat deshalb sitzen Sie hier! Thomas Frenken 22 / 23
23 Siehe auch... SUN JCF Tutorial Java Collections Framework Tutorial unter (Registrierungspflichtig) Thomas Frenken 23 / 23
java.util. Sebastian Draack Department Informations- und Elektrotechnik Department Informations- und Elektrotechnik JAVA Collection-API
Sebastian java.util.* Draack JAVA Collection-API 1 Collection-API Begriffe Einleitung, Motivation Iterator Comparator Interfaces Abstrakte Klassen Konkrete Klassen Utility-Klassen Beispiele Zusammenfassung
Mehr19 Collections Framework
Collection = Containterklasse, die andere Objekte enthält. Inhalte: Schnittstellen Implementierungen Algorithmen Vorteile: Einheitlicher Zugriff auf Containerobjekte. Abstraktion von den Implementierungsdetails.
Mehr19 Collections Framework
Collection = Containterklasse, die andere Objekte enthält. Inhalte: Schnittstellen Implementierungen Algorithmen Vorteile: Einheitlicher Zugriff auf Containerobjekte. Abstraktion von den Implementierungsdetails.
Mehr12 Collections Framework. Interfaces Maps and Collections. Collection Interface. Überblick. Collection = Containterklasse, die andere Objekte enthält.
Collection = Containterklasse, die andere Objekte enthält. Inhalte: Schnittstellen Implementierungen Algorithmen Interfaces Maps and Collections Iterable Collection Map Vorteile: Set List Queue SortedMap
MehrGrundkonzepte java.util.list
Grundkonzepte java.util.list Eine List ist eine Spezialisierung einer allgemeinen Ansammlung (Collection): Lineare Ordnung ist definiert Zugriff über Rang oder Position Volle Kontrolle wo eingefügt bzw.
MehrJAVA KURS COLLECTION
JAVA KURS COLLECTION COLLECTIONS Christa Schneider 2 COLLECTION Enthält als Basis-Interface grundlegende Methoden zur Arbeit mit Collections Methode int size() boolean isempty() boolean contains (Object)
MehrKapitel 6: Java Collection Teil I
Kapitel 6: Java Collection Teil I Übersicht Bemerkungen Collection List LinkedList und ArrayList Queue und Deque ArrayDeque 6-1 In diesem Kapitel Die Java-API enthält eine Sammlung von generischen Schnittstellen
MehrKapitel 12: Java Collection Teil II
Kapitel 12: Java Collection Teil II Übersicht Set und TreeSet Map und TreeMap 12-1 In diesem Kapitel Iterable Interface Klasse extends implements Collection Queue List Set Map Deque
MehrKapitel 12: Java Collection Teil II
Kapitel 12: Java Collection Teil II Übersicht Set und TreeSet Map und TreeMap 12-1 In diesem Kapitel Iterable Interface Klasse extends implements Collection Queue List Set Map Deque
MehrTeil V. Generics und Kollektionen in Java
Teil V Generics und Überblick 1 Parametrisierbare Datenstrukturen in Java 2 Prof. G. Stumme Algorithmen & Datenstrukturen Sommersemester 2009 5 1 Parametrisierbare Datenstrukturen in Java Motivation für
MehrKapitel 7: Java Collection Teil I
Kapitel 7: Java Collection Teil I! Übersicht! Bemerkungen! Collection! List! LinkedList und ArrayList! Queue und Deque! ArrayDeque Prof. Dr. O. Bittel, HTWG Konstanz Programmiertechnik II Java Collection
MehrOCP Java SE 8. Collections
OCP Java SE 8 Collections Collections (Interfaces) Iterable Collection Set List Queue SortedSet Deque Collection List erlaubt Duplikate und null behält die Reihenfolge Set erlaubt keine Duplikate Queue
MehrSammlungen. JOHANNES KEPLER UNIVERSITY LINZ Research and teaching network. Übung SWE 2 1
Sammlungen Übung SWE 2 1 Inhalt Einleitung Listen und Queues Mengen Abbildungen Algorithmen und Wrapper Zusammenfassung Übung SWE 2 2 Einleitung Collections sind Datenstrukturen für Sammlungen von Daten
MehrEinstieg in die Informatik mit Java
1 / 15 Einstieg in die Informatik mit Java Collections Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 15 1 Überblick Collections 2 Hierarchie von Collections 3 Verwendung
MehrNützliche Utility-Klassen des JDK
Nützliche Utility-Klassen des JDK java.util :, Properties, I18N, Scanner java.text : Ausgabeformatierung u.a. java.util.prefs : Hierarchische Konfigurationsdaten (1.5) java.util.logging : Aufzeichnung
MehrSammlungen. Inhalt. Einleitung. Listen und Queues. Mengen. Abbildungen. Algorithmen und Wrapper. Zusammenfassung
Sammlungen Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 1 Inhalt Einleitung Listen und Queues Mengen Abbildungen Algorithmen und Wrapper Zusammenfassung Pratikum SWE 2 M. Löberbauer, T. Kotzmann,
MehrPropädeutikum Programmierung in der Bioinformatik
Propädeutikum Programmierung in der Bioinformatik Java Collections Thomas Mauermeier 15.01.2019 Ludwig-Maximilians-Universität München Collections? Was ist eine Collection? Container für mehrere Objekte
MehrProgrammiertechnik II
Programmiertechnik II Datentypen Primitive Typen in Java Wertesemantik (keine Referenzsemantik) Vordefinierte Hüllklassen (etwa java.lang.float) Integrale Typen: char, byte, short, int, long Gleitkommatypen:
MehrProgrammierkurs Java
Programmierkurs Java Java Generics und Java API (2/2) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck https://www.itm.uni-luebeck.de/people/fischer #2 Listen Bisher: Collections
MehrProgrammiertechnik II
Datentypen in Java Primitive Typen in Java Wertesemantik (keine Referenzsemantik) Vordefinierte Hüllklassen (etwa java.lang.float) Integrale Typen: char, byte, short, int, long Gleitkommatypen: float,
MehrWo sind wir? Rudolf Berrendorf FH Bonn-Rhein-Sieg Programmiersprache Java 338
Wo sind wir? Java-Umgebung Lexikale Konventionen Datentypen Kontrollstrukturen Ausdrücke Klassen, Pakete, Schnittstellen JVM Exceptions Java Klassenbibliotheken Ein-/Ausgabe Collections Threads Applets,
MehrJavakurs für Fortgeschrittene
Javakurs für Fortgeschrittene Einheit 09: Weitere Datenstrukturen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda Datenstrukturen Motivation Die Collection API Interface Collection
MehrObjektorientierte Programmierung. Kapitel 21: Einführung in die Collection Klassen
Stefan Brass: OOP (Java), 21. Collection Klassen 1/30 Objektorientierte Programmierung Kapitel 21: Einführung in die Collection Klassen Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester
MehrObjektorientiertes Programmieren mit Java
Java - Collections Objektorientiertes Programmieren mit Java 1 Java Collections Gliederung Grundlagen Die Klassen Vector, Stack, HashTable und BitSet Der Typ List Iteratoren Set und Map Sortierte Collections
MehrProgrammieren in Java
Datenstrukturen 2 Gruppierung von Daten Datentypen, die eine Menge an Daten gruppieren und auf dieser Gruppierung eine gewisse Logik bereitstellen werden Datenstrukturen genannt Bisher wurde zur Gruppierung
MehrProgrammieren in Java
Datenstrukturen 2 Wiederholung: Typvariable Analog zu Variablen, die für Daten stehen, stehen Typvariablen für einen bestimmten Typ Typvariablen werden im in der Klassendefinition nach dem Klassennamen
MehrCollections. Arthur Zaczek. Nov 2015
Arthur Zaczek Nov 2015 1 Collections 1.1 Definition Anhäufung von Objekten Werte können hinzugefügt, gesucht und gelöscht werden Implementierung mit verschiedenen Algorithmen, je nach Nutzung 1.2 Grundlegende
MehrProgrammiertechnik II
Datentypen in Java Primitive Typen in Java Wertesemantik (keine Referenzsemantik) Vordefinierte Hüllklassen (etwa java.lang.float) Integrale Typen: char, byte, short, int, long Gleitkommatypen: float,
MehrSammlungen Listen Mengen Abbildungen Algorithmen Wrapper
Sammlungen Listen Mengen Abbildungen Algorithmen Wrapper Pratikum SWE 2 M. Löberbauer T. Kotzmann H. Prähofer 1 Einleitung Collections sind Datenstrukturen für Sammlungen von Daten Stacks Queues Priority
MehrSammlungen. Listen Mengen Abbildungen Algorithmen Wrapper. Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 1
Sammlungen Listen Mengen Abbildungen Algorithmen Wrapper Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 1 Einleitung Collections sind Datenstrukturen für Sammlungen von Daten Stacks Queues Mengen
Mehr17. Java Collections. Daten Organisieren. Generische Liste in Java: java.util.list. Typ Parameter (,,Parametrischer Polymorphisums )
Daten Organisieren Datenstrukturen, die wir kennen 17 Java Collections Generische Typen, Interfaces, Java Collections, Iteratoren Heute: Arrays Sequenzen fixer Grösse Strings Buchstabensequenzen Verkettete
MehrVorlesung Programmieren
Vorlesung Programmieren Java Generics und Java API Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck https://www.itm.uni-luebeck.de/people/fischer Programme verarbeiten Daten Häufig
MehrJava Schulung. Objektorientierte Programmierung in Java Teil V: Die Java Collection Klassen. Prof. Dr. Nikolaus Wulff
Java Schulung Objektorientierte Programmierung in Java Teil V: Die Java Collection Klassen Prof. Dr. Nikolaus Wulff Collections in Java 2 Java 2 Collections: http://java.sun.com/products/jdk/1.2/docs/guide/collections/index.html
MehrVorlesung Programmieren
Vorlesung Programmieren 12 Java API Jun.-Prof. Dr.-Ing. Anne Koziolek Version 1.1 ARBEITSGRUPPE ARCHITECTURE-DRIVEN REQUIREMENTS ENGINEERING (ARE) INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION
MehrProgrammierkurs Java
Programmierkurs Java Java Generics und Java API (1/2) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck https://www.itm.uni-luebeck.de/people/fischer Datenstrukturen In vielen Sprachen
MehrCollections. Arthur Zaczek
Collections Arthur Zaczek Nov 2015 1/31 Collections Collections 2/31 Definition Anhäufung von Objekten Werte können hinzugefügt, gesucht und gelöscht werden Implementierung mit verschiedenen Algorithmen,
MehrJava Generics & Collections
Praktikum Effizientes Programmieren (Sommersemester 2018) Dennis Reuling 1 / 1 Praktikum Effizientes Programmieren (Sommersemester 2018) Agenda Teil 1 Generics 2 / 1 Praktikum Effizientes Programmieren
MehrMengen und Multimengen
Überblick 21. Datenstrukturen 21.1 Einleitung 21.2 Listen 21.3 Assoziative Speicher 21.4 Bäume 21.5 Mengen 21.6 Das Collections-Framework in Java 21 Datenstrukturen 5 Mengen Einf. Progr. (WS 08/09) 870
MehrProgrammieren in Java
Datenstrukturen 2 Was bisher geschah Bisher wurden zur Gruppierung von Daten immer Arrays genutzt Bis auf die Index-Funktion gibt es allerdings keinerlei logischer Operationen, mit denen der Array manipuliert
MehrMengen und Multimengen
Überblick 17. Datenstrukturen 17.1 Einleitung 17.2 Listen 17.3 Assoziative Speicher 17.4 Bäume 17.5 Mengen 17.6 Das Collections-Framework in Java 17.7 Zusammenfassung 17 Datenstrukturen 5 Mengen Informatik
MehrProgrammieren in Java
Datenstrukturen 2 Was bisher geschah Bisher wurden zur Gruppierung von Daten immer Arrays genutzt Bis auf die Index-Funktion gibt es allerdings keinerlei logischer Operationen, mit denen der Array manipuliert
MehrCollections und Iteratoren ListIterator Sets. Programmieren II. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester / 22
Programmieren II Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2010 1 / 22 Collections und Iteratoren ListIterator Sets 2 / 22 Hierarchie von Collections Die sequenziellen Container (ArrayList
MehrProgrammieren II. Hierarchie von Collections. Vorlesung 3. Handout S. 1. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester 2010
Programmieren II Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2010 1 / 22 Collections und Iteratoren ListIterator Sets 2 / 22 Hierarchie von Collections Die sequenziellen Container (ArrayList
MehrFaulheit professionell: Fertige Datenbehälter. Das Java-Collections-Framework Typsicherheit Generische Klassen
Faulheit professionell: Fertige Datenbehälter Das Java-Collections-Framework Typsicherheit Generische Klassen Das Java Collections Framework Grundlegende Interfaces Das Interface List Das Interface List
MehrKapitel 14. Das Java Collection Interface. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz
Kapitel 14 Das Java Collection Interface 14. Das Java Collection Interface 1. Collections 2. Iteratoren (Iterators) 3. Listen (List) 4. Mengen (Set) 5. Hashtabellen (Map) 6. Generics Folie 14.2 Das Java
MehrGrundlagen der Informatik Generische Klassen
Grundlagen der Informatik Generische Klassen Generische Klassen, das Java-Collection-Framework und mehr Generische Programmierung Beobachtung: In vielen Problemstellungen hängt der grundsätzliche Aufbau
MehrJava Einführung Collections
Java Einführung Collections Inhalt dieser Einheit Behälterklassen, die in der Java API bereitgestellt werden Wiederholung Array Collections (Vector, List, Set) Map 2 Wiederholung Array a[0] a[1] a[2] a[3]...
MehrProgrammieren in Java
Programmieren in Java Vorlesung 08: Collections Peter Thiemann Albert-Ludwigs-Universität Freiburg, Germany SS 2013 Peter Thiemann (Univ. Freiburg) Programmieren in Java JAVA 1 / 39 Inhalt Collections
MehrProgrammierzertifikat Objekt-Orientierte Programmierung mit Java
Programmierzertifikat Objekt-Orientierte Programmierung mit Java Vorlesung 07: Collections Peter Thiemann Universität Freiburg, Germany SS 2008 Peter Thiemann (Univ. Freiburg) Programmierzertifikat Objekt-Orientierte
MehrGenerische Polymorphie in Java-
Generische Polymorphie in Java- Johannes Waldmann (HTWK Leipzig) Plan Beispiel Collections, Iteratoren, Maps Schnittstellen und Implementierungen Genaueres zum Typsystem Details zu Implementierungen zur
Mehr4.4.9 Das Java Collection Framework
4.4.9 Das Java Collection Framework eine Sammlung von Interfaces, die die Organisation von Objekten in Container unterstützt Spezifikation von Methoden zur Unterstützung der Erstellung von Collections
MehrAbstrakte Datentypen und Java
Abstrakte Datentypen und Java ƒ hehueolfn ƒ 5HDOLVLHUXQJYRQ$'7 NRQNUHWH'DWHQW\SHQ %HLVSLHO5DWLRQDOH=DKO ƒ 3DUDPHWULVLHUWH'DWHQW\SHQ %HLVSLHO)HOG6RUWLHUWHV)HOG ƒ 6FKQLWWVWHOOHQNRQ]HSW ƒ :LFKWLJH'DWHQW\SHQLQ-DYD
MehrProgrammieren 2 16 Java Collections und Generizität
Programmieren 2 16 Java Collections und Generizität Bachelor Medieninformatik Wintersemester 2015 Dipl.-Inform. Ilse Schmiedecke schmiedecke@beuth-hochschule.de 1 Faulheit professionell: Fertige Datenbehälter
MehrVorlesung 07: Collections. Peter Thiemann SS 2010
Vorlesung 07: Collections Peter Thiemann Universität Freiburg, Germany SS 2010 Peter Thiemann (Univ. Freiburg) JAVA 1 / 45 Inhalt Collections Iteratoren Implementierungen Das Interface Collection Beispiel:
MehrSoftware Entwicklung 1
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Überblick Parametrisierte Datentypen mit Java Generics Java Collections Framework Parametrisierte
MehrADT: Java Collections und ArrayList
ADT: Java Collections und ArrayList Überblick der Klassen Object File Collections Map List Set ArrayList LinkedList SortedSet HashSet SortedSet Methode ArrayList Klasse I Beschreibung void add(int position,
MehrRechtsbelehrung. Java und OOP Das Buch Christian Silberbauer 144
Rechtsbelehrung Dieser Foliensatz ist urheberrechtlich geschützt. Änderungen an den Folien sind untersagt. Ausschließlich eine nicht-kommerzielle Nutzung ist kostenfrei. Andernfalls wird eine Gebühr fällig.
MehrKapitel 5: Iterierbare Container
Kapitel 5: Iterierbare Container Foreach-Schleife Interface Iterator Interface Iterable Iterator-Schleife und Foreach-Schleife Generische Liste mit Iteratoren Prof. Dr. O. Bittel, HTWG Konstanz Programmiertechnik
MehrAufgabenblatt 4. Aufgabe 3. Aufgabe 1. Aufgabe 2. Prof. Dr. Th. Letschert Algorithmen und Datenstrukturen
Prof. Dr. Th. Letschert Algorithmen und Datenstrukturen Aufgabenblatt 4 Aufgabe 1 1. Erläutern Sie in eigenen Worten die Begriffe Datenstruktur, Datentyp und abstrakter Datentyp. Nutzen Sie das Beispiel
MehrLineare Datenstrukturen: Felder, Vektoren, Listen Modelle: math. Folge (a i ) i=1.. mit Basistyp T oder: [T]
Teil II: Datenstrukturen Datenstrukturen Lineare Datenstrukturen: Felder, Vektoren, Listen Modelle: math. Folge (a i ) i=1.. mit Basistyp T oder: [T] Nichtlineare Datenstrukturen: Bäume Modell(e): spezielle
MehrProblem: Was ist, wenn der Stapel voll ist? Idee: Erzeuge dynamisch ein grösseres Array und kopiere um. Dynamische Anpassung der Größe
Maximale Größe?! Problem: Was ist, wenn der Stapel voll ist? Idee: Erzeuge dynamisch ein grösseres Array und kopiere um Dynamische Anpassung der Größe Praktische Informatik I, HWS 2009, Kapitel 10 Seite
MehrEnterprise Java, Services und Systemintegration. Wie gut kennst Du das Collections Framework? Historie
Enterprise Java, Services und Systemintegration Wie gut kennst Du das Collections Framework? @thfro http://www.frotscher.com thilo@frotscher.com Historie JDK 1.0 1996 Vector, Stack, Hashtable, Dictionary
MehrEinführung in die Programmierung mit Java
Einführung in die Programmierung mit Java Teil 14: Verkettete Listen Martin Hofmann Steffen Jost LFE Theoretische Informatik, Institut für Informatik, Ludwig-Maximilians Universität, München Stack 18.
MehrKapitel 4: Bäume i. 1. Einleitung. 2. Ein Datenmodell für Listen. 3. Doppelt-verkettete Listen. 4. Bäume. 5. Das Collections-Framework in Java
Kapitel 4: Bäume i 1. Einleitung 2. Ein Datenmodell für Listen 3. Doppelt-verkettete Listen 4. Bäume 5. Das Collections-Framework in Java Prof. Dr. Peer Kröger: EiP (WS 18/19) Teil 11: Datenstrukturen
MehrObjektorientierte Implementierung
Objektorientierte Implementierung 10) Verfeinern von Assoziationen mit dem Java-2 Collection Framework Softwaretechnologie, Prof. Uwe Aßmann, Prof. Heinrich Hussmann 1 Objektorientierte Implementierung
Mehr2.4. Java Collections Framework
Softwaretechnik 1 Vorlesung 2.4. Java Collections Framework Prof. Dr. Bernhard Rumpe Technische Universität Braunschweig http://www.sse.cs.tu-bs.de/ Seite 2 Java Klassenbibliothek Java: Objektorientierte
MehrALP II Dynamische Datenmengen
ALP II Dynamische Datenmengen Teil III Iteratoren Iterator-Objekt O1 O2 O3 O4 SS 2012 Prof. Dr. Margarita Esponda 22. ALP2-Vorlesung, M. Esponda 2 Motivation: Iteratoren Wir haben für die Implementierung
MehrSoftware Entwicklung 1
Software Entwicklung 1 Annette Bieniusa AG Softech FB Informatik TU Kaiserslautern Lernziele Abstrakte Datentypen Stack und Queue zu implementieren und anzuwenden Vorteile von parametrischer Polymorphie
MehrTeil II) Objektorientierte Implementierung 10) Verfeinern von UML-Assoziationen mit dem Java-2 Collection Framework
Teil II) Objektorientierte Implementierung 10) Verfeinern von UML-Assoziationen mit dem Java-2 Collection Framework Prof. Dr. rer. nat. Uwe Aßmann Institut für Software- und Multimediatechnik Lehrstuhl
MehrProgrammieren 2 02 Maps, Sets, Defensive Programmierung
Programmieren 2 02 Maps, Sets, Defensive Programmierung Bachelor Medieninformatik Sommersemester 2016 Dipl.-Inform. Ilse Schmiedecke schmiedecke@beuth-hochschule.de 1 MAP - Zusammenfassung 2 2 Assoziative
MehrJava Generics & Collections
Java Praktikum Effizientes Programmieren (Sommersemester 2015) Dennis Reuling Agenda 1 2 3 1 / 30 Praktikum Effizientes Programmieren (Sommersemester 2015) Java Subtyping Teil 1 2 / 30 Praktikum Effizientes
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1. Kapitel 11. Listen. Listen
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1 Kapitel 11 Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 2 Ziele Implementierungen für
MehrII.4.6 Collections - 1 -
1. Unterklassen und Vererbung 2. Abstrakte Klassen und Interfaces 3. Modularität und Pakete 4. Ausnahmen (Exceptions) 5. Generische Datentypen 6. Collections II.4.6 Collections - 1 - Typische Datenstrukturen
MehrÜbungsblatt Programmierung und Software-Entwicklung Generizität, Interfaces, Listen, Sortieralgorithmen & JUnit
Übungsblatt Programmierung und Software-Entwicklung Generizität, Interfaces, Listen, Sortieralgorithmen & JUnit Aufgabe : Die allgemeine Object-Liste Gegeben sei folgendes UML-Klassendiagramm: MyObjectList
MehrProgrammieren I. Listen mit wahlfreiem Zugriff. Vorlesung 1. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Sommersemester 2011.
Programmieren I Martin Schultheiß Hochschule Darmstadt Sommersemester 2011 1 / 78 Listen Collections Iteratoren Sets SortedSet NavigableSet Maps 2 / 78 Listen mit wahlfreiem Zugriff In der letzten Vorlesung
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 13. Listen. Listen 1
Kapitel 13 Listen Listen 1 Ziele Implementierungen für Listen kennenlernen Einfach verkettete und doppelt verkettete Listen verstehen Listen-Implementierungen in der Java-Bibliothek kennenlernen Durch
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 12. Listen. Listen 1
Kapitel 12 Listen Listen 1 Ziele Implementierungen für Listen kennenlernen Einfach verkettete und doppelt verkettete Listen verstehen Listen-Implementierungen in der Java-Bibliothek kennenlernen Durch
MehrDynamische Datenstrukturen
Dynamische Datenstrukturen B-Bäume größere Datenmengen verwalten Extern speichern Art der Speicherung berücksichtigen sonst kein optimaler Datenzugriff möglich Art der Speicherung großer Datenmengen Magnetplatten
MehrInfo B VL 14: Java Collections/Reflections
Info B VL 14: Java Collections/Reflections Objektorientiere Programmierung in Java 2003 Ute Schmid (Vorlesung) Elmar Ludwig (Übung) FB Mathematik/Informatik, Universität Osnabrück Info B VL 14: Java Collections/Reflections
MehrProgrammieren I. Kapitel 13. Listen
Programmieren I Kapitel 13. Listen Kapitel 13: Listen Ziel: eigene Datenstrukturen erstellen können und eine wichtige vordefinierte Datenstruktur( familie) kennenlernen zusammengehörige Elemente zusammenfassen
MehrIT I: Heute. abstrakte Methoden und Klassen. Interfaces. Interfaces List, Set und Collection IT I - VO 7 1
IT I: Heute abstrakte Methoden und Klassen Interfaces Interfaces List, Set und Collection 22.11.2018 IT I - VO 7 1 Wissensüberprüfung Überschreiben von Methoden: Aufruf der Methode der Oberklasse ist oft
MehrSelbststudium OOP7 & ALG2 Auftrag
Selbststudium OOP7 & ALG2 Auftrag Kapitel 5.6 1. zu bearbeitende Aufgaben: 5.24 bis 5.30 5.24: Return Method Set entryset() V get(object key) Set keyset() V put(k key, V value) void
MehrKapitel 14: Collections und Generics Software Entwicklung 1
Kapitel 14: Collections und Generics Software Entwicklung 1 Annette Bieniusa, Mathias Weber, Peter Zeller In diesem Kapitel führen wir das Konzept von abstrakten Datentypen ein. Wir haben mit Listen bereits
MehrVorlesung Programmieren
Vorlesung Programmieren 15 Java API Prof. Dr. Ralf H. Reussner Version 1.0 LEHRSTUHL FÜR SOFTWARE-DESIGN UND QUALITÄT (SDQ) INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD), FAKULTÄT FÜR INFORMATIK
MehrLiteraturverzeichnis. Literaturverzeichnis 245
Literaturverzeichnis 245 Literaturverzeichnis 1. Gosling, J., Joy, B., Steele, G., Bracha, G.: The Java Language Specification, 3rd edn. The Java Series. Prentice Hall (2005) 2. Oracle: Java Platform,
MehrJava Collection Framework
Java Collection Framework Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete
MehrAlgorithmen und Datenstrukturen in Java. 2007 Jiri Spale, Algorithmen und Datenstrukturen in Java 1
Algorithmen und Datenstrukturen in Java 2007 Jiri Spale, Algorithmen und Datenstrukturen in Java 1 Enumeratoren und Iteratoren Daten üblich gespeichert in: - Arrays, verketteten Listen, Bäumen, Geläufige
MehrCollections des Typs Set. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 09: Collections 3. Collections des Typs Set.
Universität Osnabrück 1 3 - Objektorientierte Programmierung in Java Vorlesung 09: Collections 3 Eigenschaften Eine Collection vom Typ Set ist die Java- Repräsentation einer mathematischen Menge. Sie enthält
MehrVom objektorientierten Entwurf zur Implementierung in Java. 2. Dezember 2014
Vom objektorientierten Entwurf zur Implementierung in Java 2. Dezember 2014 Überblick Verwendung von Frameworks und Bibliotheken Was enthält die Java Standard Edition? Implementieren mit dem Java Collections
Mehr6. Interfaces Grundlagen der Programmierung 1 (Java)
6. Interfaces Grundlagen der Programmierung 1 (Java) Fachhochschule Darmstadt Haardtring 100 D-64295 Darmstadt Prof. Dr. Bernhard Humm FH Darmstadt, 22. November 2005 Einordnung im Kontext der Vorlesung
Mehr1. Welches Interface ist nicht von Collection abgeleitet? A. B. C. D. List Set Map SortedSet. 2. Welche Aussagen sind richtig?
Prof. Dr. Detlef Krömker Ashraf Abu Baker Robert-Mayer-Str. 10 60054 Frankfurt am Main Tel.: +49 (0)69798-24600 Fax: +49 (0)69798-24603 EMail: baker@gdv.cs.uni-frankfurt.de 1. Welches Interface ist nicht
MehrJava I Vorlesung Collections
Java I Vorlesung 5 Collections 24.5.2004 Abstrakte Klassen und Interfaces Arrays Java Collections Framework Abstrakte Klassen: Motivation Häufig will man eine Klasse schreiben, die nur als Basisklasse
MehrOutline. Builder Pattern Iterator Pattern. 25 May (C) Hochschule für Technik Fachhochschule Nordwestschweiz
Outline Builder Pattern Iterator Pattern 25 May 2018 1 Builder Pattern Intent Separate the construction of a complex object from its representation so that the same construction process can create different
MehrSoftware Entwicklung 1
Software Entwicklung 1 Annette Bieniusa AG Softech FB Informatik TU Kaiserslautern Was gefällt Ihnen? Sehr ausführliches Skript Fragen / Aufgaben in der Vorlesung Praktische Beispiele Tolle Aufgabenblätter
Mehr