Die Java - Collections API
|
|
- Dagmar Brahms
- vor 5 Jahren
- Abrufe
Transkript
1 Die Java - API HAW - Hamburg 16. April 2011
2 Inhaltsüberblick 1 Intention Schlüsselworte Klassenübersicht von und Maps HashCode Binärbäume Interface: Comparable 2 Collection Map 3 List und Queues Sets Maps 4 Hilfsklasse 5 Iteratoren und Enumeratoren 6
3 Inhaltsüberblick 1 Intention Schlüsselworte Klassenübersicht von und Maps HashCode Binärbäume Interface: Comparable 2 Collection Map 3 List und Queues Sets Maps 4 Hilfsklasse 5 Iteratoren und Enumeratoren 6
4 Beteiligte Klassen Schlüsselworte HashCode Comparable Binärbaum Abschnitt Begriffe, Grundstruktur und Intention
5 Was ist die - API? Beteiligte Klassen Schlüsselworte HashCode Comparable Binärbaum Vorgefertigte Klassen zum effizienten Verwalten von Daten. Bequemer Zugriff über definierte Methoden. Generische Programmierung erlaubt breite Anwendbarkeit Für viele Zwecke ist bereits alles Werkzeug vorhanden.
6 Klassenübersicht Beteiligte Klassen Schlüsselworte HashCode Comparable Binärbaum
7 Intention dieses Vortrages Beteiligte Klassen Schlüsselworte HashCode Comparable Binärbaum Gewinnen eines Überblicks Generelle Funktionsweise verstehen Grundlegende Methoden kennenlernen Nicht: Jede Methode besprechen. Was geht, was geht nicht? Schlüsselworte. Welche Klassengruppe passt zu welchem Konzept.
8 Klassenbaum von Collection Beteiligte Klassen Schlüsselworte HashCode Comparable Binärbaum
9 Klassenbaum von Maps Beteiligte Klassen Schlüsselworte HashCode Comparable Binärbaum
10 Schlüsselworte Beteiligte Klassen Schlüsselworte HashCode Comparable Binärbaum Tree Beschreibt, dass die betreffende Klasse Daten in einem Binärbaum speichert. Array Klassen mit diesem Schlüsselwort legen Referenzen in Arrays ab. Hash Zur Verwaltung der Daten wird HashCode eingesetzt. Linked Daten werden in einer verketteten Liste abgelegt. Priority Es ist eine Prioritätsverwaltung integriert. Blocking Funktioniert eine Aktion nicht, wird der zugehörige Thread gesperrt (Datenaustausch bei Multithreading).
11 Was ist HashCode? Beteiligte Klassen Schlüsselworte HashCode Comparable Binärbaum Das englische Wort Hash heißt etwa zerhacken, verstreuen. Es können aus größeren Datenmengen immer gleich große Werte errechnet werden, die nahezu eindeutig diese Datenmenge identifizieren. Das Verfahren wird genutzt, um bei größeren Datenbeständen, den Vergleich zu vereinfachen und zu beschleunigen. Statt der Daten selber wird der HashCode verglichen. Beispiel (Unix - Befehle): echo "HAW - Hamburg - WP Java Programmierung" sha1sum liefert e6d3edc031b b80a091c852cac456189c7.
12 Das Interface Comparable Beteiligte Klassen Schlüsselworte HashCode Comparable Binärbaum Enthält nur die auf die eigene Klasse anzupassende Methode int compareto(type objectname) Funktionsweise: Sollte immer dann implementiert werden, wenn Elemente verglichen werden müssen. Aufrufendes Element größer als das verglichene: Rückgabe positiv. Aufrufendes Element kleiner als verglichene: Rückgabe negativ. Sind beide Elemente gleich: Rückgabe Null.
13 Beteiligte Klassen Schlüsselworte HashCode Comparable Binärbaum Was versteht man unter binären Bäumen? Binärbäume bieten systematisches Sortieren während der Speicherung. Finden einzelner Elemente wird wesentlich beschleunigt. Regeln für Binärbäume Bestehen aus Knoten. Ein Knoten kann entweder ein Element enthalten oder leer sein. Knoten mit Element haben immer zwei Nachfolgeknoten (deshalb Binärbaum). Leere Knoten haben keine Nachfolger.
14 Beteiligte Klassen Schlüsselworte HashCode Comparable Binärbaum Wie sortiert man in Binärbäume ein? Es wird von oben nach unten vorgegangen. Neue Elemente werden schematisch mit vorhandenen verglichen. An einem gefüllten Knoten gilt: Neues Element größer als das des Knotens: Weiter auf rechtem Zweig Neues Element kleiner als das des Knotens: Weiter auf linkem Zweig Auf so erreichtem, leeren Knoten ablegen. Mit weiteren Elementen ebenso verfahren.
15 Wie liest man aus? Beteiligte Klassen Schlüsselworte HashCode Comparable Binärbaum Beispiel: InOrder - Auslesen Reihenfolge: Links - Wurzel - Rechts Wechselt man bei einer Wurzel die Seite (von linker auf rechte Seite), muss im neuen Ast wieder links unten begonnen werden. Beispiel JavaScript Applet zu binären Bäumen.
16 Das Interface Collection Das Interface Map Abschnitt Struktur, Eigenarten und Nutzungsmöglichkeiten
17 Das Interface Collection Das Interface Map Methoden der Schnittstelle Collection I
18 Das Interface Collection Das Interface Map Methoden der Schnittstelle Collection II addall( Collection <?> c ) : boolean Versucht die Collection c einzufügen. Rückgabe bei Erfolg True. contains( Object o ) : boolean Rückgabe True, falls der Container o enthält. containsall( Collection <?> c ) : boolean Rückgabe True, falls alle Elemente von c in der aufrufenden Collection gefunden. isempty( ) : boolean Rückgabe True falls keine Elemente enthalten sind. retainall( Collection <?> c ) : boolean Rückgabe True, wenn alle Elemente die nicht in c enthalten sind, entfernt werden konnten. size( ) : int Gibt die Anzahl der Elemente zurück.
19 Das Interface Collection Das Interface Map Methoden der Schnittstelle Collection III toarray( ) : Object[ ] Gibt ein Array mit allen Elementen vom Typ Object (sic!) zurück. toarray( T[] a ) : <T> T[] Gibt ebenfalls ein Array aller Elemente zurück. Allerdings wird versucht das als Parameter übergebene Feld zu nutzen. Ist dies zu klein, wird ein größeres des selben Typs erstellt und zurückgegeben. equals( Object o) : boolean Rückgabe True, wenn a) o das gleiche Element ist, wie jenes mit dem aufgerufen wird; b) o eine gleichende Collection ist; c) ggf. die Ordnung der Elemente innerhalb der Collection auch gleich ist. hashcode() : int Liefert den Hash - Wert des gesamten Containers. Achtung: Der Wert ist ungültig, wenn Veränderungen am Container vorgenommen werden.
20 Das Interface Collection Das Interface Map Methoden der Schnittstelle Collection IIII Optionale Methoden remove( Object o ) : boolean Rückgabe True, falls o entfernt werden konnte. removeall( Collection <? > c ) : boolean Rückgabe True, wenn alle Elemente von c entfernt werden konnten. add( Element e ) : boolean Rückgabe True, wenn e eingefügt werden kann. clear( ) Löscht alle Elemente.
21 Map: Unterschiede zu Collection Das Interface Collection Das Interface Map Deutsche Bezeichnung: Assoziativer Speicher. Es werden immer Datenpaare abgelegt (Schlüssel und Wert). Es können keine doppelten Schlüssel auftreten. Stammt nicht von Iterator ab (es gibt also keine Iteratoren für Maps). Elemente haben keine Position innerhalb der Map. Neue Datenpaare werden nicht mit add() hinzugefügt, sondern mit put (Schlüssel, Wert)
22 Methoden des Interface Map Das Interface Collection Das Interface Map Ähnlich den Methoden von Collection, aber immer Schlüssel - Wert Paare. Methoden um Wert bzw. Schlüssel gesondert zu finden.
23 Intention Listen (List) und Queues Mengen (Set) Assoziativspeicher (Map) Abschnitt Beispielhafte Nutzung konkreter Klassen
24 Ziel dieses Kapitels Intention Listen (List) und Queues Mengen (Set) Assoziativspeicher (Map) Dieser Abschnitt soll helfen, für einen bestimmten Zweck eine geeignete Klasse zu suchen, die sich instanziieren lässt. Es ist dabei als Leitfaden zu verstehen. Die letztendliche Entscheidung für eine bestimmte Geschmacksrichtung sollte z.b. anhand der Java - Hilfe erfolgen. Für die einzelnen Unterarten sind beispielhaft instanziierbare Klassen herausgegriffen. Es geht dabei eher um Stärken und Schwächen der einzelnen Arten, als um die Vorstellung aller Unterklassen.
25 ArrayList und LinkedList Intention Listen (List) und Queues Mengen (Set) Assoziativspeicher (Map) ArrayList Nahe an den gewohnten Arrays aus Primitiven. Verfügen prinzipiell über einen Index. Reihenfolge kann erhalten bleiben. Doppelt verkettete Liste (LinkedList) Jedes Element ist mit seinem Vorgänger und seinem Nachfolger verknüpft. Elemente können beliebig eingestellt und entfernt werden. Suche nach einem Element langsam. Reihenfolge kann erhalten bleiben.
26 Queue und Deque Intention Listen (List) und Queues Mengen (Set) Assoziativspeicher (Map) Diese Klassen sind besonders beschränkte Listen. Queues Bei Queues gilt das FIFO Prinzip. Es können nur Daten in den Anfang eingestellt werden. Entnehmen kann man Daten nur am Ende des Queues. Die Reihenfolge kann nicht verändert werden. Methoden vorhanden, die Exceptions auslösen und solche, die das nicht tun. Deque (Double Ended Queue) Ähnlich den Queues. Es können Daten an Anfang und Ende gestellt werden. An Anfang und Ende kann man Daten entnehmen. Die Reihenfolge kann in einer Queue nicht verändert werden.
27 Zusammenfassung: Listen Anwendungsfall Geeignete Collection Intention Listen (List) und Queues Mengen (Set) Assoziativspeicher (Map) Grund Bekannte Messwerte Menge ArrayList voreingestellter Größe Reihenfolge + Schneller, linearer Zugriff Unbekannte Menge Messwerte LinkedList Reihenfolge + einfach vergrößerbar Kommunikation mit Thread Queue - Typen FIFO - Prinzip + spezielle Zugriffsmodifikatoren (BlockingQueues)
28 Zusammenfassung: Listen Intention Listen (List) und Queues Mengen (Set) Assoziativspeicher (Map) Gleichheit von Listen Zwei Listen l1 und l2 sind dann (equals -) gleich, wenn ihre Elemente und die Reihenfolge gleich sind. Also: LinkedList<String> l1 = new LinkedList<String>( Arrays.asList( "" ) ); ArrayList<String> l2 = new ArrayList<String>( Arrays.asList( "" ) ); System.out.println( l1.equals( l2 ) ); // true Beispiel Eclipse - Beispiele zu Lists...
29 TreeSet Intention Listen (List) und Queues Mengen (Set) Assoziativspeicher (Map) Sets sind Mengen im mathematischen Sinne. Gleichheit von Elementen Zwei Elemente e1 und e2 sind dann gleich, wenn die Methode e1.equals(e2) true liefert! Eine Menge kann nur ein Exemplar eines Elementes haben. Durch Nutzung des Binärbaums wird bei Einstellen der Elemente sortiert. Hinzufügen, Löschen, Suchen bestimmter Elemente geht (im Vergleich zu Listen) schneller (höchstens log(n) Schritte).
30 LinkedHashSet Intention Listen (List) und Queues Mengen (Set) Assoziativspeicher (Map) Beispiel Nutzt doppelt verkettete Listen und eine Hashwert - Tabelle. Einstellungs - Reihenfolge bleibt erhalten (wegen List - Bestandteilen). Vereint die Vorzüge von Hash (Geschwindigkeit) mit der Sortierung verketteter Listen. Typische Listenmethoden wie first() oder getindex(index) fehlen! Erhöhter Gebrauch von Speicher und Rechenzeit. Achtung: Beim Einstellen eines bereits vorhandenen Elementes ändert sich dessen Position nicht. Eclipse - Beispiel zu Sets..
31 TreeMap Intention Listen (List) und Queues Mengen (Set) Assoziativspeicher (Map) Es werden Schlüssel und Wert zusammen gespeichert. Sofortige Sortierung durch Binärbaum auf Grundlage des Schlüssels. Klasse implementiert NavigableMap und bietet damit recht viele Zugriffsmöglichkeiten.
32 Properties Intention Listen (List) und Queues Mengen (Set) Assoziativspeicher (Map) Die Klasse Properties ist besonders für Ini - Dateien geeignet. Beispiel Sowohl Schlüssel als auch Wert sind immer vom Typ String. Kann recht direkt in Dateien schreiben. Kann relativ direkt aus Dateien lesen. Geeignet, um Einstellungen eines Programmes zentral zu verwalten, dauerhaft zu speichern und wieder zu lesen. Eclipse - Beispiel zu Properties.
33 Zusammenfassung: Maps Intention Listen (List) und Queues Mengen (Set) Assoziativspeicher (Map) Anwendungsfall Geeignete Collection Grund Waren und deren Preise sortiert abspeichern TreeMap Sortierung z.b. nach Warennummer Ini - Dateien Properties Ausgabe in Text - Dateien, nur Strings
34 Welche gibt es? Wie nutzt man? Abschnitt (Utility - Classes) Nutzen, Gefahren und Zusammenhänge
35 Klassenübersicht von Welche gibt es? Wie nutzt man? Kennzeichen von Utility - Klassen Utility - Klassen können nicht instanziiert werden. Utility - Klassen sind nicht Bestandteil der betroffenen Klassen. Stellen Methoden bereit, die auf (oder Arrays) angewendet werden können. Manche Methoden greifen tief in die betroffenen Container ein.
36 Beispiele zur Nutzung - Welche gibt es? Wie nutzt man? sort(list list) Sortiert eine Liste nach natürlicher Ordnung (natural Order). swap(list list, int i, int j) Vertauscht Element i und j einer Liste. max(collection coll) : Object Gibt das, nach natürlicher Ordnung, größte Element einer Collection zurück. copy(list dest, List src) Kopiert alle Elemente von Liste src nach Liste dest. shuffle(list list) Erzeugt eine zufälle Reihenfolge der Elemente einer Liste.
37 Bestandteile eines Iterators Funktionsweise eines Iterators Einsatzgebiete von Iteratoren Abschnitt Iteratoren Zugehöriges Interface, Möglichkeiten und Einschränkungen
38 Prinzipbild eines Iterators Bestandteile eines Iterators Funktionsweise eines Iterators Einsatzgebiete von Iteratoren
39 Bestandteile von Iteratoren Bestandteile eines Iterators Funktionsweise eines Iterators Einsatzgebiete von Iteratoren Folgende Methoden werden implementiert: hasnext( ) : boolean Rückgabe True, wenn es ein Folgeelement gibt. next() : Object Gibt das nächste Element zurück. Falls es keines gibt (nicht per hasnext() geprüft), wird eine UnsupportedOperationException ausgelöst. remove() Entfernt das letzte Element, welches per next() geholt wurde. Wurde next() noch nicht aufgerufen, so wird eine IllegalStateException ausgelöst.
40 Wie funktionieren Iteratoren? Bestandteile eines Iterators Funktionsweise eines Iterators Einsatzgebiete von Iteratoren Man legt eine Referenz auf einen Iterator an und übergibt diesem das Objekt, welches durch den Aufruf der Container - Methode iterator() zurückgeliefert wird. Ein neuer Iterator steht immer vor dem ersten Element. Seine Methode next() gibt dann eine Referenz auf dieses erste Element zurück und rückt den Iterator vor das nächste Element. Mit hasnext() sollte vor Aufruf von next() geprüft werden, ob noch Elemente vorhanden sind.
41 Vor - und Nachteile von Iteratoren Bestandteile eines Iterators Funktionsweise eines Iterators Einsatzgebiete von Iteratoren + Durch die Iterator - for - Schleife ist das Durchlaufen aller Elemente einer Collection sehr einfach. + Kürzt immer gleiche Programmteile teilweise erheblich ab. + Vermeidet Fehler durch falsch gesetzte Iterationsgrenzen in for - Schleifen. - Iteratoren erlauben selber nur Zugriff auf das nächste Element und rücken dann vor. - Löschen per Iterator unbequem und gefährlich.. Beispiel Eclipse - Beispiel zu Iteratoren.
42 Abschnitt Hinweise und
43 Wichtige Punkte equals() Genau überlegen: Was genau soll wie verglichen werden? Solide Implementierung wichtig. compareto() Bei Allem, was sortiert werden soll wichtig. Auch hier: Am besten vorher Gedanken zur beabsichtigten Funktionsweise machen. Typisierte Referenz Für den Anfang am besten Referenzen immer vom gleichen Typ wie instanziierte Collection. Methoden die Elemente vom Typ Object liefern Vorsicht: Hier sollte man klar darauf achten, was man tut. Zugehörige Fehler dürften nämlich nur zur Laufzeit auftreten. T[] toarray(t[] a) statt Object[] toarray() Erstere Methode ist typensicher.
44 Quellen Java ist auch eine Insel von Christian Ullenboom Die Java Referenz von Oracle WW - Anwendungsentwicklung Die vorgestellten Applets
45 Ende Ende Vielen Dank für die Aufmerksamkeit Fragen?
OCP 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
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)
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
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
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
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
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
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
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
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
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
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
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]...
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.
Mehrjava.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
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
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
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
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
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
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
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
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
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
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
MehrSchein-/Bachelorklausur Teil 2 am Zulassung: Mindestens 14 Punkte in Teilklausur 1 und 50% der Übungspunkte aus dem 2. Übungsblock.
Schein-/Bachelorklausur Teil 2 am 13.02.2007 Zulassung: Mindestens 14 Punkte in Teilklausur 1 und 50% der Übungspunkte aus dem 2. Übungsblock. Alle Studiengänge außer Bachelor melden sich über die Lehrstuhlwebseite
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,
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
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
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
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
MehrDatenstrukturen und Algorithmen. Vorlesung 5
Datenstrukturen und Algorithmen Vorlesung 5 Inhaltsverzeichnis Vorige Woche: Sortierte Listen Zyrkuläre Listen Verkettete Listen auf Arrays Heute betrachten wir: Skip Listen ADT Set ADT Map Iterator ADT
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
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
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:
MehrPhysikalisch Technische Lehranstalt Wedel 31. Januar 2004 Prof. Dr. Uwe Schmidt
Physikalisch Technische Lehranstalt Wedel 31. Januar 2004 Prof. Dr. Uwe Schmidt Aufgaben zur Klausur Objektorientierte Programmierung im WS 2003/04 (IA 252) Zeit: 90 Minuten erlaubte Hilfsmittel: keine
MehrII.4.4 Exceptions - 1 -
n 1. Unterklassen und Vererbung n 2. Abstrakte Klassen und Interfaces n 3. Modularität und Pakete n 4. Ausnahmen (Exceptions) n 5. Generische Datentypen n 6. Collections II.4.4 Exceptions - 1 - Ausnahmen
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
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
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
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
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
MehrÜbung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 2017 Marc Bux, Humboldt-Universität zu Berlin Agenda 1. (Sortierte) Listen 2. Stacks & Queues 3. Datenstrukturen 4. Rekursion und vollständige Induktion
MehrInformatik II Übung 7. Gruppe 2 Carina Fuss
Informatik II Übung 7 Gruppe 2 Carina Fuss cfuss@student.ethz.ch 18.4.2018 Carina Fuss 16.4.2018 1 Übung 7 Hinweise zum Programmieren Nachbesprechung Übung 6 Vorbesprechung Übung 7 ArrayList und Generics
MehrGrundlagen der Informatik 0
Technische Universität Darmstadt 01.07.2013 Grundlagen der Informatik 0 Vorlesung 0 Java ist eine Programmiersprache Ilkay Baytekin Douglas Crockford http://media.smashingmagazine.com/wp-content/uploads/2012/04/doug-crockford-image.jpg
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.
MehrProgrammieren in Java
Programmieren in Java Vorlesung 05: Generics Prof. Dr. Peter Thiemann Albert-Ludwigs-Universität Freiburg, Germany SS 2015 Peter Thiemann (Univ. Freiburg) Programmieren in Java JAVA 1 / 19 Inhalt Generics
MehrKapitel 12: Induktive
Kapitel 12: Induktive Datenstrukturen Felix Freiling Lehrstuhl für Praktische Informatik 1 Universität Mannheim Vorlesung Praktische Informatik I im Herbstsemester 2009 Folien nach einer Vorlage von H.-Peter
MehrDatenstrukturen und Algorithmen. Vorlesung 8
Datenstrukturen und Algorithmen Vorlesung 8 Inhaltsverzeichnis Vorige Woche: ADT Stack ADT Queue Heute betrachten wir: ADT Deque ADT Prioritätsschlange Binomial-Heap Schriftliche Prüfung Informationen
MehrIT I: Heute. Klasse Object. equals, hashcode, tostring. HashSet IT I - VO 6 1
IT I: Heute Klasse Object equals, hashcode, tostring HashSet 14.11.2017 IT I - VO 6 1 Wissensüberprüfung Wie ruft man statische Methode auf? Gegeben Klasse Fix mit statischer Methode static boolean foxi(string
MehrHeute. Nachbetrachtung Wissensüberprüfung. Sortieren Interface Comparable TreeSet Sortieren von Arrays: Arrays.sort() 3.12.
Heute Nachbetrachtung Wissensüberprüfung Sortieren Interface Comparable TreeSet Sortieren von Arrays: Arrays.sort() 3.12.2015 IT I - VO 9 1 Organisatorisches Zwischentest findet am 16.12. von 17:30 bis
MehrAlgorithmen und Datenstrukturen. Algorithmen und Datenstrukturen. B3.1 Einführung. B3.2 Verkettete Liste. B3.3 Bäume
Algorithmen und Datenstrukturen 22. März 2018 B3. Verkettete Listen und Bäume Algorithmen und Datenstrukturen B3. Verkettete Listen und Bäume B3.1 Einführung Marcel Lüthi and Gabriele Röger B3.2 Verkettete
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen B3. Verkettete Listen und Bäume Marcel Lüthi and Gabriele Röger Universität Basel 22. März 2018 Einführung Abstrakter Datentyp / Datenstruktur Abstrakter Datentyp Eine Menge
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
MehrInstitut für Programmierung und Reaktive Systeme 24. April Programmieren II. 10. Übungsblatt
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 24. April 2018 Programmieren II 10. Übungsblatt Hinweis: Auf diesem und den folgenden Übungsblättern
MehrFachhochschule Wedel 31. Januar 2004 Prof. Dr. Uwe Schmidt
Fachhochschule Wedel 31. Januar 2004 Prof. Dr. Uwe Schmidt Aufgaben zur Klausur C und Objektorientierte Programmierung im WS 2003/04 (WI h103, II h105, MI h353) Zeit: 150 Minuten erlaubte Hilfsmittel:
Mehr12.3 Ein Datenmodell für Listen
Zweiter Versuch: Wir modellieren ein Element der Liste zunächst als eigenständiges Objekt. Dieses Objekt hält das gespeicherte Element. Andererseits hält das Element- Objekt einen Verweis auf das nächste
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
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.
MehrEinführung in die Objektorientierte Programmierung Vorlesung 18: Lineare Datenstrukturen. Sebastian Küpper
Einführung in die Objektorientierte Programmierung Vorlesung 18: Lineare Datenstrukturen Sebastian Küpper Unzulänglichkeit von Feldern Wenn ein Unternehmen alle Rechnungen eines Jahres verwalten möchte,
MehrTeil VII. Hashverfahren
Teil VII Hashverfahren Überblick 1 Hashverfahren: Prinzip 2 Hashfunktionen 3 Kollisionsstrategien 4 Aufwand 5 Hashen in Java Prof. G. Stumme Algorithmen & Datenstrukturen Sommersemester 2009 7 1 Hashverfahren:
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
Mehrpublic interface Stack<E> { public void push(e e); public E pop();
ADS Zusammenfassung René Bernhardsgrütter 02.04.2012 1 Generics Gewähren Typsicherheit und können für verschiedene Datentypen ohne Casts verwendet werden. Beim Erstellen der Klasse werden Platzhalter für
MehrIT I: Heute. Klasse Object. equals, hashcode, tostring. HashSet IT I - VO 6 1
IT I: Heute Klasse Object equals, hashcode, tostring HashSet 13.11.2018 IT I - VO 6 1 Organisatorisches Wissensüberprüfung gleich im Anschluss an die VO UE heute schon früher (ab 11:45) heute beide UE-Gruppen
MehrEinführung in die Programmierung Generische Programmierung. Thomas R. Gross. Department Informatik ETH Zürich
252-0027 Einführung in die Programmierung 10.0 Generische Programmierung Thomas R. Gross Department Informatik ETH Zürich Copyright (c) Pearson 2013 and Thomas Gross 2016 All rights reserved. Uebersicht
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
MehrAssoziative Container in C++ Christian Poulter
Assoziative Container in C++ Christian Poulter Seminar: Die Sprache C++ Mat-Nr.: 53 03 129 EMail: inf@poulter.de Christian Poulter Assoziative Container in C++ Seite 1/10 Inhalt 1. Einleitung: Container...
MehrFortgeschrittene Programmiertechnik Klausur SS 2015 Angewandte Informatik Bachelor
Fortgeschrittene Programmiertechnik Klausur SS 2015 Angewandte Informatik Bachelor Name Matrikelnummer Aufgabe Punkte Aufgabe Punkte Zwischensumme 1 6 2 8 3 12 4 18 5 20 64 6 9 7 17 8 18 9 12 Summe 120
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:
MehrSTL-Container und Laufzeit
STL-Container und Laufzeit Eine Übersicht Höhere Programmierung / C++ Yannick Kaiser, LMU 1 C++11 Array konstanter Länge, die bei der Initalisierung angegeben werden muss STL-Kapselung für klassische
MehrC# - Einführung in die Programmiersprache Arrays, Enumeration und Collections. Leibniz Universität IT Services Anja Aue
C# - Einführung in die Programmiersprache Arrays, Enumeration und Collections Leibniz Universität IT Services Anja Aue Arrays... speichern mehrere Werte vom gleichen Datentyp. fassen zusammenhängende Werte
MehrWas ist ein assoziativer Speicher?
Ü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 3 Assoziative Speicher
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
MehrJavakurs FSS Lehrstuhl Stuckenschmidt. Tag 4 ArrayList, PriorityQueue, HashSet und HashMap
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 4 ArrayList, PriorityQueue, HashSet und HashMap Array List Dynamisches Array ArrayList vertritt ein Array mit variabler Länge Kapazität passt sich automatisch
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
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,
MehrTag 8 Repetitorium Informatik (Java)
Tag 8 Repetitorium Informatik (Java) Dozent: Michael Baer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Informatik-Repetitorium
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
MehrObjektorientierte Programmierung
Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Übungsblatt 5 Objektorientierte Programmierung 22. 05. 2006 Aufgabe 9 (SMS-Eingabe am Handy mit Tries)
MehrProgrammieren 2 01 Organisation und Wiedereinstieg
Programmieren 2 01 Organisation und Wiedereinstieg Bachelor Medieninformatik Sommersemester 2016 Dipl.-Inform. Ilse Schmiedecke schmiedecke@beuth-hochschule.de 1 Überblick Thema Programmiertechnik und
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,
MehrAlgorithmen und Programmierung III
Musterlösung zum 5. Aufgabenblatt zur Vorlesung WS 2006 Algorithmen und Programmierung III von Christian Grümme Aufgabe 1 Implementieren von ADTs Testlauf der Klasse TestDeque in der z05a1.jar: 10 Punkte
MehrALP II Dynamische Datenmengen Datenabstraktion
ALP II Dynamische Datenmengen Datenabstraktion O1 O2 O3 O4 SS 2012 Prof Dr Margarita Esponda M Esponda-Argüero 1 Dynamische Datenmengen Dynamische Datenmengen können durch verschiedene Datenstrukturen
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
MehrDatenstrukturen. Ziele
Datenstrukturen Ziele Nutzen von Datenstrukturen Funktionsweise verstehen Eigenen Datenstrukturen bauen Vordefinierte Datenstrukturen kennen Hiflsmethoden komplexer Datenstrukten kennen Datenstrukturen
MehrOrdnung im Materiallager: Datenstrukturen II. Suchen und Sortieren im Array Verkettete Listen Rekursion
Ordnung im Materiallager: Datenstrukturen II Suchen und Sortieren im Array Verkettete Listen Rekursion Indizierter Datenbehälter Modell: Parkhaus, nummerierte Plätze interface FuhrparkIndex { // indiziert
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
Mehr