Vorlesung Programmieren. Programme verarbeiten Daten. Generische Datenstrukturen. Java Generics und Java API
|
|
- Frida Maurer
- vor 7 Jahren
- Abrufe
Transkript
1 Vorlesung Programmieren Java Generics und Java API Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck Programme verarbeiten Daten Häufig benötigt: Datenstrukturen zum Speichern Bisher: Spezielle Datenstrukturen pro Programm: Security - 04 Cryptology #2 Generische Datenstrukturen Häufig benötigte Datenstrukturen (ausführlich in AuD im 2. Semester) Listen Keller bzw. Stapel (Stack) Warteschlangen (Queues) Mengen... Natürlich kann man diese selbst programmieren Security - 04 Cryptology #3
2 Beispiel: Eigene generische Liste Security - 04 Cryptology #4 Mögliche Implementierung Speichert alle in Java möglichen Objekte, da alle transitiv von Objekt erben Es können (bei dieser Implementierung) maximal maxelemente gespeichert werden in einer konkreten Instanz Security - 04 Cryptology #5 Mögliche Implementierung Security - 04 Cryptology #6
3 Mögliche Implementierung Security - 04 Cryptology #7 Mögliche Implementierung Security - 04 Cryptology #8 Mögliche Implementierung Was praktisches: schöne Ausgabe der Instanz Security - 04 Cryptology #9
4 Verwendung Security - 04 Cryptology #10 Der Obstkorb und die Liste Security - 04 Cryptology #11 Problem dieser Implementierung Verwendung einer festen maximalen Größe Werden mehr Elemente eingefügt als Platz verfügbar ist, werden diese nicht gespeichert Besser: dynamische Größenanpassung Liste sollte dynamisch mitwachsen Alternative Implementierung siehe nächste Folie Security - 04 Cryptology #12
5 Dynamische Liste Security - 04 Cryptology #13 Datenstrukturen und Java Dieses Problem betrifft praktisch alle Programme In vielen Sprachen (z.b. C) hat praktisch jedes Programm seine eigenen Datentypen implementiert Probleme: viel unnötiger Code, Fehlerquelle, schwer auszutauschen, jedes Programm war einzigartig hohe Einarbeitungszeit Daher: Java stellt Standardtypen bereit Teil der Java Distribution Sog. Java Collections Framework (java.util.*) Referenzen Java Collections Framework (JCF) Stellt sog. Container-Klassen bereit Container nehmen andere Datentypen in sich auf Dynamische Datenstrukturen, die ihre Größe anpassen Zwei grundlegende Typen: Collection und Map Collection (java.util.collection) in dieser Vorlesung Listen, Mengen, Schlangen (Queues) Map für Assoziativspeicher (java.util.map) Speichert <name, wert>-tupel 15
6 Java Collections Framework (JCF) Interfaces legen den Funktionsumfang eines Containertyps fest z.b. das Interface Collection Konkrete Klassen erben von diesen und implementieren die Funktion des Containers Abstrakte Basisklassen dienen zur vereinfachten Implementierung konkreter Klassen Beispiel Implementiert Interface Collection Abstrakte Listenimplementierung Konkret, Speicherung in Array 16 Teil der Vererbungshierarchie Collection AbstractList AbstractSet ArrayList... Vector TreeSet... HashSet Security - 04 Cryptology #17 Collection Interface Wichtige Methoden boolean add(e e); void clear(); boolean contains(object o); int size(); Iterator iterator();... Was ist wohl ein Iterator? Später... Security - 04 Cryptology #18
7 Interface java.util.collection 19 Instanziierung einer Collection Beispiel: Verwendung einer Liste Zunächst Wahl einer Implementierung Dann Instanziierung Collection c = new ArrayList(); 20 Verwendung von Collection import java.util.*; public class NutzungVonCollection private static void test( Collection c ) for ( int i = 0; i < 5; i++ ) c.add( i ); System.out.println( Ist leer? + c.isempty()); System.out.println( Anzahl Elemente: + c.size()); 21
8 Konzept der Iteratoren Dient dem Zugriff auf Elemente einer Collection Im einfachsten Fall kann man nur vorwärts von einem Element zum nächsten gelangen Iterator iterator = collection.iterator(); Zwei wesentliche Methoden eines Iterators boolean hasnext(): true, wenn es ein weiteres Element gibt Object next(): Liefert nächstes Objekt Beispiel: Iteration über Collection next() next() next() next() next() next() next() next() hasnext: true hasnext: true hasnext: true hasnext: true hasnext: true hasnext: true hasnext: true hasnext: true hasnext: false Security - 04 Cryptology #22 Verwendung von Iteratoren Vorsicht: nicht 2x next() aufrufen pro 1x hasnext() z.b. innerhalb der while-schleife 23 Verwendung von Iteratoren Oft besser: Referenz auf nächstes Objekt einer Variable zuweisen 24
9 Kürzere Variante: for-schleife Iterationen über Collections lassen sich mit der for-schleife prägnant und kurz schreiben Initialisierung: Zuweisung einer Iterator-Referenz Bedingung: Prüfen auf hasnext(); Inkrement: Nichts tun Security - 04 Cryptology #25 Noch kürzere Variante: foreach-schleife Seit Java 1.5 gibt es noch eine weitere Schleife Speziell für die Iteration über Collections, Arrays, etc. Abkürzende Schreibweise, kann durch for-schleife ersetzt werden Möglich für alle Objekte, die das Interface Iterable implementieren Also z.b. Collection Syntax: for(typ variable : iterableobject ) statement; Security - 04 Cryptology #26 Das Interface Iterable 27
10 Foreach und Collections Beispiel: Umwandlung einer for-schleife in eine foreach-schleife Security - 04 Cryptology #28 Collections und ihre Daten Beispiel c.add( new String( 1 ) ); c.add( new Integer(42) ); Collection enthält String- und Integer-Instanzen add-methode akzeptiert nur Object-Instanzen Iterator kann daher nur Object zurückgeben Beispielhafte Iteration über diese Collection for(object o : c) System.out.println( Länge: + ((String)o).length()); Problem: Typsicherheit Wie stellt man sicher, dass in einer Collection nur Daten eines bestimmten Typs gespeichert werden können? 29 Wie speichert man Daten? class IntBox private int val; class StringBox private String val; void setvalue( int val ) this.val = val; int getvalue() return val; void setvalue( String val ) this.val = val; String getvalue() return val; 30
11 Wie implementiert man generische Typen? Häufig durch Speichern von Object- Instanzen class ObjectBox private Object val; void setvalue( Object val ) this.val = val; Object getvalue() return val; Verwendung Box b = new Box(); Point p = new Point(1,2); b.setvalue( p ); Probleme ((Point)b.getValue()).getX(); Umständlich Jeder Zugriff erfordert Typ-Cast Unsicher Typ-Cast kann fehlschlagen ((Vector)b.getValue()).doX(); ClassCastException 31 Lösung: Generische Typen in Java Sog. Java Generics Klassen und Methoden können generisch implementiert werden Statt Object wird ein Platzhalter-Typ verwendet Alt: private Object val; Neu: private T val; Dieser Typ kann wie ein normaler Typ verwendet werden Bei der konkreten Verwendung muss T spezifiert werden Security - 04 Cryptology #32 Lösung: Java Generics class ObjectBox private Object val; class Box<T> private T val; Sagt Java, dass T im Folgenden ein Platzhalter ist void setvalue( Object val ) this.val = val; Object getvalue() return val; void setvalue(t val) this.val = val; T getvalue() return val; 33
12 Verwendung Instanziierung Box<String> stringbox = new Box<String>(); Box<Integer> intbox = new Box<Integer>(); Box<Point> pointbox = new Box<Point>(); Zugriff Point p = new Point(1,2); pointbox.setvalue( p ); double x = pointbox.getvalue().getx(); getvalue() liefert Point zurück 34 Generics: Einfache generische Methoden class HopOderTop public static <T> T aoderb(t a, T b) if (Math.random() > 0.5) return a; else return b; System.out.println( HopOderTop.aOderB( Zuhören, Weiterschlafen ) ); System.out.println( Note: + HopOderTop.aOderB( 1.0, 1.3 ) ); 35 Seit Java 1.5 verwendet das JCF Generics Alt: Collection l = new ArrayList(); Neu: Collection<String> = new ArrayList<String>(); Vorteile Es können keine falschen Datentypen mehr gespeichert werden Typ-Cast entfällt Beispiele: nächste Folie 36
13 Beispiel: Ohne und mit Generics Security - 04 Cryptology #37 Listen Bisher: Collections Sammlung von Objekten Nicht notwendigerweise in einer bestimmten Reihenfolge Listen Feste Reihenfolge von Elementen Zugriff auf das n-te Element Einfügen, Löschen Wichtige (neue) Methoden get(index), remove(index), indexof(object), listiterator() Volle Referenz Security - 04 Cryptology #38 Implementierungen von java.util.list Vector Nutzt intern ein Array zur Speicherung. Gibt es seit Java 1.0 ArrayList Wie Vector, nur unsynchronisiert Nur wichtig bei nebenläufigem Zugriff LinkedList Verkettete Elemente 39
14 ListIterator-Interface (extends Iterator) void add(e e) boolean hasnext() boolean hasprevious() E next() int nextindex() E previous() int previousindex() void remove() void set(e e) Security - 04 Cryptology #40 ListIterator: Beispiel List<String> list1 = new ArrayList<String>(); list1.add( Test1" ); list1.add( Test2" ); list1.add( Test3" ); ListIterator<String> it = list1.listiterator(); System.out.println( it.next() ); System.out.println( it.previous() ); 41 Verwendung von List List<String> list = new ArrayList<String>(); list.add( Test"); list.add(0, Test an den Anfang"); list.add( Und hintendran"); System.out.println(list); list.remove(1); for( String s : list ) System.out.println( - + s); 42
15 Interne Realisierung von ArrayList Hat ein Array mit bestimmter Kapazität Speichert Größe des Arrays und Anzahl der gespeicherten Elemente Zugriff Schnell bei Zugriff auf bestimmte Elemente über einen Index Einfügen Kapazität verfügbar: schnelles Einfügen am Ende Kapazität erschöpft: Es wird ein neues, größeres Array angelegt und alle Elemente kopiert Langsam Peter capacity = 7 size = Test 3 ein 2 ist 1 das 0 Hallo Einfügen in der Mitte: Es werden alle darüber liegenden Elemente um eins nach oben kopiert Langsam Interne Realisierung von LinkedList Klasse LinkedList selbst hält nur zwei Referenzen Auf erstes und letztes Element Jedes Datenelement hat Referenz auf Vorgänger und Nachfolger Einfügen an bestimmtem Index Suchen des n-ten Elements und einfügen durch Umbiegen der Referenzen Besonders effizient am Anfang und am Ende Klasse LinkedList (implementiert List) Referenz auf erstes Element 88 Referenz auf letztes Element Suchen in Listen Methode indexof sucht (kleinsten) Index eines Objektes Beispiel List<Integer> list = Arrays.asList( 1, 3, 4, 1 ); int i = list.indexof( 1 ); System.out.println( i ); 45
16 Wie vergleicht man Objekte? Wie funktioniert der Vergleich von Objekten? == funktioniert nicht (vergleicht Objektreferenz) Zwei Interfaces in Java: Comparable, Comparator Eine Klasse implementiert Comparable Jede Instanz kann sich mit einer anderen Instanz vergleichen Eine andere Klasse implementiert Comparator Erhält zwei Objekte und vergleicht diese miteinander 46 Comparable Interface java.lang.comparable compareto(t other) liefert < 0, wenn this kleiner other > 0, wenn this größer other == 0, wenn this gleich other 47 Beispiel (ohne Sonderfälle) public class Mensch implements Comparable<Mensch> private int groesse; public int compareto(mensch other) return groesse other.groesse; 48
17 Comparator Interface java.util.comparator Wie compareto von java.lang.comparable Vergleicht aber zwei Objekte miteinander Vorteil: Außerhalb der Klasse implementierbar Beispiel: Verschiedene Sortierstrategien 49 Beispiel: Sortieren von Collections Hilfsklasse java.util.collections Methoden zum Sortieren von Listen Mit und ohne extra Comparator Ohne Angabe eines Comparators Das Comparable Interface wird verwendet 50 Beispiel: Kommandozeilenargumenten sortieren import java.util.*; public class Sort public static void main(string[] args) List<String> list = Arrays.asList(args); Collections.sort(list); System.out.println(list); Ausführen: java Das ist ein Test Ausgabe: [Das, Test, ein, ist] 51
18 Mengen in Java Mengen enthalten jedes Element genau einmal Verwenden Comparator/Comparable zur Identitätsfeststellung In Java: Interface java.util.set<t> Implementierungen: HashSet, TreeSet (Auswahl) 52 Beispiel für Set Set<String> set = new HashSet<String>(); set.add( Hallo ); set.add( Hallo ); set.add( Hallo1 ); System.out.println( Elemente: + set.size() ); for(string s : set) System.out.println( Element: + s); 53 Stacks Implementierung in Java: java.util.stack<t> Erbt von Vector Ergänzt Funktionen eines Stacks 54
19 Was fällt Ihnen auf bei dieser Implementierung eines Stacks? 55 Weitere wichtige Packages von Java java.lang.* java.util.* java.io.* java.net.* 56 Security - 04 Cryptology #57
Programmierkurs 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
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
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
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
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
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]...
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
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
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
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
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
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.
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
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
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
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 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
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
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
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
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
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
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
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
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
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
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
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
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
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
MehrVerkettete Listen. Implementierung von einfach verketteten Listen. Implementierung von doppelt verketteten Listen
Verkettete Listen Verwendung von Listen in Java Das Prinzip des Iterators Implementierung von einfach verketteten Listen Implementierung von doppelt verketteten Listen Informatik II: Objektorientierte
MehrInstitut für Informatik
Technische Universität München Institut für Informatik Lehrstuhl für Computer Graphik & Visualisierung WS 2009 Praktikum: Grundlagen der Programmierung Aufgabenblatt 9 Prof. R. Westermann, R. Fraedrich,
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
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
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 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
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,
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
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
Mehr19 Collections Framework
Collection = Containterklasse, die andere Objekte enthält. Inhalte: Schnittstellen Implementierungen Algorithmen Vorteile: Einheitlicher Zugriff auf Containerobjekte. Abstraktion von den Implementierungsdetails.
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
MehrJava Collections Framework (JCF)
Algorithmen & Datenstrukturen Bachelor Medieninformatik Fachbereich DCSM FH Wiesbaden University of Applied Sciences Thomas Frenken frenken@informatik.fh-wiesbaden.de Inhaltsverzeichnis 1. Das Java Collections
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.
Mehr3. Übungsbesprechung Programmkonstruktion
3. Übungsbesprechung Programmkonstruktion Karl Gmeiner karl@complang.tuwien.ac.at December 12, 2011 K Gmeiner (karl@complang.tuwien.ac.at) 3. Übungsbesprechung PK December 12, 2011 1 / 13 Rückblick und
MehrAlgorithmen und Datenstrukturen CS1017
Algorithmen und Datenstrukturen CS1017 Th. Letschert TH Mittelhessen Gießen University of Applied Sciences Datenstrukturen I: Lineare Sequenzen / Listen Datenstrukturen für Sequenzen Sequenzen in der Java-API:
MehrInformatik II Übung 6
Informatik II Übung 6 Gruppe 2 Carina Fuss cfuss@student.ethz.ch 11.4.2018 Carina Fuss 11.4.2018 1 Übung 6 Nachbesprechung Übung 5 Objektorientierung Vererbung, Polymorphie, abstrakte Klassen, Interfaces,
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
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
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
MehrListElement (E i n f o, ListElement<E> prev, ListElement<E> next ) {
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2011 Einführung in die Informatik I Übungsblatt 11 Prof. Dr. Helmut Seidl, A. Lehmann, A. Herz,
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
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.
MehrProgrammieren in Java -Eingangstest-
Programmieren in Java -Eingangstest- Nummer: 1. Studiengang: Informatik B.Sc. Informatik M.Sc. ESE B.Sc. ESE M.Sc. Sonstiges: Fachsemester: Bitte Fragen, die Sie nicht beantworten können unbedingt mit
MehrNeuere Sprachelemente in Java
Softwaretechnik 1 Vorlesung Neuere Sprachelemente in Java Prof. Dr. Bernhard Rumpe Technische Universität Braunschweig http://www.sse.cs.tu-bs.de/ Seite 2 Neuerungen seit Java 5.0 Java Spracherweiterungen
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
MehrProgrammierkurs C++ Templates & STL (1/2)
Programmierkurs C++ Templates & STL (1/2) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck https://www.itm.uni-luebeck.de/people/fischer #2 Templates Die wichtigsten objekt-orientierten
MehrVorlesung Informatik 2
Vorlesung Informatik 2 Fachhochschule für Technik Esslingen Studiengang Wirtschaftsinformatik Neues in Java 5.0 (Tiger) Dr. rer. nat. Andreas Rau http://www.fht-esslingen.de/~rau andreas.rau@fht-esslingen.de
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
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
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,
MehrProbeklausur zur Vorlesung
Dr. Jochen Hoenicke Alexander Nutz Probeklausur zur Vorlesung Einführung in die Informatik Sommersemester 2014 Die Klausur besteht aus diesem Deckblatt und elf Blättern mit den Aufgaben, sowie einem Blatt
MehrVorlesung Inf-B
Vorlesung Inf-B stehn@mi.fu-berlin.de Quelle Diese Folien basieren auf dem Java-Tutorial Generics von Gilad Bracha http://java.sun.com/docs/books/tutorial/extra/generics/ 2 Motivierendes Beispiel List
MehrWie entwerfe ich ein Programm?
Wie entwerfe ich ein Programm? Welche Objekte brauche ich? Flussdiagramme für Programmablauf Vorcode Testcode Hauptcode Wir spielen Lotto! Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel 5 +
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
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
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,
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
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
Mehrequals und hashcode SortedSet NavigableSet Assoziative Container Programmieren II Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2010 1 / 32
Programmieren II Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2010 1 / 32 equals und hashcode SortedSet NavigableSet Assoziative Container 2 / 32 HashSet mit eigener Klasse Wie kann man einen
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,
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
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
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
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
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:
Mehr1 Einleitung Generizität Syntax... 2
Inhaltsverzeichnis Inhaltsverzeichnis 1 Einleitung 1 1.1 Generizität................................ 1 1.2 Syntax.................................. 2 2 Realisierung 2 2.1 Compilierung generischer Klassen...................
MehrKapitel 5: Interfaces
Liste P: Programmieren mit Java WS 2001/2002 Prof. Dr. V. Turau FH Wiesbaden Kapitel 5: Interfaces Folie 82 : Einleitung Betrachtet man die Programmierleistung für ein Produkt über einen längeren Zeitraum,
MehrProgrammieren 2 Übung Semesterwoche 2
Programmieren 2 Übung Semesterwoche 2 1. Stack (LIFO: Last-In--First-Out) Implementieren und testen Sie eine Klasse Stack, so dass beliebig viele Objekte eines vorgegebenen Datentyps (z. B. String) auf
MehrTeil 2-3. Vorlesung. Modul: Programmierung B-PRG Grundlagen der Programmierung II
Teil 2-3. Vorlesung Modul: Programmierung B-PRG Professur für Datenbanken und Informationssysteme Dr. Karsten Tolle tolle@dbis.cs.uni-frankfurt.de 1 Wrapper-Klassen Alle primitive Datentypen haben eine
Mehr12 Abstrakte Klassen, finale Klassen und Interfaces
12 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,
Mehr7. Verkettete Strukturen: Listen
7. Verkettete Strukturen: Listen Java-Beispiele: IntList.java List.java Stack1.java Version: 4. Jan. 2016 Vergleich: Schwerpunkte Arrays verkettete Listen Listenarten Implementation: - Pascal (C, C++):
MehrSchwerpunkte. Verkettete Listen. Verkettete Listen: 7. Verkettete Strukturen: Listen. Überblick und Grundprinzip. Vergleich: Arrays verkettete Listen
Schwerpunkte 7. Verkettete Strukturen: Listen Java-Beispiele: IntList.java List.java Stack1.java Vergleich: Arrays verkettete Listen Listenarten Implementation: - Pascal (C, C++): über Datenstrukturen
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
MehrDie Java - Collections API
Die Java - API HAW - Hamburg 16. April 2011 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
MehrStacks, Queues & Bags. Datenstrukturen. Pushdown/Popup Stack. Ferd van Odenhoven. 19. September 2012
, Queues & Ferd van Odenhoven Fontys Hogeschool voor Techniek en Logistiek Venlo Software Engineering 19. September 2012 ODE/FHTBM, Queues & 19. September 2012 1/42 Datenstrukturen Elementare Datenstrukturen
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
MehrJava Spickzettel von Panjutorials.de
Java Spickzettel von Panjutorials.de Hallo Welt public class HalloWelt public static void main(string[] args) // Gibt "Hallo Welt" auf die Konsole aus System.out.print("Hallo Welt"); Eine eigenständige
MehrLehrstuhl für Bioinformatik Einführung in die Programmierung für Bioinformatiker Prof. B. Rost, Dr. L. Richter Blatt
Lehrstuhl für Bioinformatik Einführung in die Programmierung für Bioinformatiker Prof. B. Rost, Dr. L. Richter Blatt 13 30.1.2017 Threads II Aufgabe 13.1. Synchronisiertes Lesen und Schreiben Betrachten
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Tafelübung 03 Vererbung, Polymorphie, Sichtbarkeit, Interfaces Clemens Lang T2 11. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/26 Klassen und Objekte Klassen und Objekte
MehrEINFÜHRUNG IN DIE PROGRAMMIERUNG
EINFÜHRUNG IN DIE PROGRAMMIERUNG GRUNDLAGEN Tobias Witt!! 24.03.2014 ORGANISATORISCHES 09:00-10:30! Täglich Übungen zur Vertiefung! Laptop hier nicht erforderlich! Linux, OS X! Freitag: http://hhu-fscs.de/linux-install-party/
MehrProgrammieren 2 Java Überblick
Programmieren 2 Java Überblick 1 Klassen und Objekte 2 Vererbung 4 Innere Klassen 5 Exceptions 6 Funktionsbibliothek 7 Datenstrukturen und Algorithmen 8 Ein-/Ausgabe 9 Graphische Benutzeroberflächen 10
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
MehrProbeklausur: Programmierung WS04/05
Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,
Mehr