Vorlesung Programmieren. Programme verarbeiten Daten. Generische Datenstrukturen. Java Generics und Java API

Größe: px
Ab Seite anzeigen:

Download "Vorlesung Programmieren. Programme verarbeiten Daten. Generische Datenstrukturen. Java Generics und Java API"

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 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

Mehr

Aufgabenblatt 4. Aufgabe 3. Aufgabe 1. Aufgabe 2. Prof. Dr. Th. Letschert Algorithmen und Datenstrukturen

Aufgabenblatt 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

Mehr

Abstrakte Datentypen und Java

Abstrakte 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

Java Einführung Collections

Java 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]...

Mehr

JAVA KURS COLLECTION

JAVA 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)

Mehr

Einstieg in die Informatik mit Java

Einstieg 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

Mehr

Kapitel 5: Iterierbare Container

Kapitel 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

Mehr

Problem: Was ist, wenn der Stapel voll ist? Idee: Erzeuge dynamisch ein grösseres Array und kopiere um. Dynamische Anpassung der 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 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

Mehr

Schein-/Bachelorklausur Teil 2 am Zulassung: Mindestens 14 Punkte in Teilklausur 1 und 50% der Übungspunkte aus dem 2. Übungsblock.

Schein-/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

Mehr

Grundkonzepte java.util.list

Grundkonzepte 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.

Mehr

Faulheit professionell: Fertige Datenbehälter. Das Java-Collections-Framework Typsicherheit Generische Klassen

Faulheit 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

Mehr

Programmieren 2 16 Java Collections und Generizität

Programmieren 2 16 Java Collections und Generizität Programmieren 2 16 Java Collections und Generizität Bachelor Medieninformatik Wintersemester 2015 Dipl.-Inform. Ilse Schmiedecke [email protected] 1 Faulheit professionell: Fertige Datenbehälter

Mehr

Programmieren in Java

Programmieren 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

Mehr

IT 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 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

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 13. Listen. Listen 1

Einfü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

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 12. Listen. Listen 1

Einfü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

Mehr

Teil V. Generics und Kollektionen in Java

Teil 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

Mehr

II.4.4 Exceptions - 1 -

II.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

Mehr

java.util. Sebastian Draack Department Informations- und Elektrotechnik Department Informations- und Elektrotechnik JAVA Collection-API

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

Mehr

Einfü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. 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

Mehr

Verkettete Listen. Implementierung von einfach verketteten Listen. Implementierung von doppelt verketteten Listen

Verkettete 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

Mehr

Institut für Informatik

Institut 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,

Mehr

ADT: Java Collections und ArrayList

ADT: 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,

Mehr

Mengen und Multimengen

Mengen 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

Mehr

Java I Vorlesung Collections

Java 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

Mehr

Java Collections Framework (JCF)

Java Collections Framework (JCF) Algorithmen & Datenstrukturen Bachelor Medieninformatik Fachbereich DCSM FH Wiesbaden University of Applied Sciences Thomas Frenken [email protected] Inhaltsverzeichnis 1. Das Java Collections

Mehr

Einführung in die Programmierung mit Java

Einfü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.

Mehr

Algorithmen und Datenstrukturen CS1017

Algorithmen 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:

Mehr

Informatik II Übung 6

Informatik II Übung 6 Informatik II Übung 6 Gruppe 2 Carina Fuss [email protected] 11.4.2018 Carina Fuss 11.4.2018 1 Übung 6 Nachbesprechung Übung 5 Objektorientierung Vererbung, Polymorphie, abstrakte Klassen, Interfaces,

Mehr

19 Collections Framework

19 Collections Framework Collection = Containterklasse, die andere Objekte enthält. Inhalte: Schnittstellen Implementierungen Algorithmen Vorteile: Einheitlicher Zugriff auf Containerobjekte. Abstraktion von den Implementierungsdetails.

Mehr

Lineare Datenstrukturen: Felder, Vektoren, Listen Modelle: math. Folge (a i ) i=1.. mit Basistyp T oder: [T]

Lineare 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

Mehr

Programmieren I. Kapitel 13. Listen

Programmieren 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

Mehr

ListElement (E i n f o, ListElement<E> prev, ListElement<E> next ) {

ListElement (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,

Mehr

Kapitel 14. Das Java Collection Interface. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz

Kapitel 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

Mehr

Programmieren in Java -Eingangstest-

Programmieren 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

Mehr

Neuere Sprachelemente in Java

Neuere 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

Mehr

Programmierkurs C++ Templates & STL (1/2)

Programmierkurs 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

Mehr

Vorlesung Informatik 2

Vorlesung 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 [email protected]

Mehr

17. Java Collections. Daten Organisieren. Generische Liste in Java: java.util.list. Typ Parameter (,,Parametrischer Polymorphisums )

17. 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

Mehr

Programmieren in Java

Programmieren 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

Mehr

Probeklausur zur Vorlesung

Probeklausur 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

Mehr

Wie entwerfe ich ein Programm?

Wie 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 +

Mehr

Collections und Iteratoren ListIterator Sets. Programmieren II. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester / 22

Collections 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

Mehr

Wo sind wir? Rudolf Berrendorf FH Bonn-Rhein-Sieg Programmiersprache Java 338

Wo 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,

Mehr

Grundlagen der Informatik Generische Klassen

Grundlagen 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

Mehr

Kapitel 5: Interfaces

Kapitel 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,

Mehr

Programmieren 2 Übung Semesterwoche 2

Programmieren 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

Mehr

12 Abstrakte Klassen, finale Klassen und Interfaces

12 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,

Mehr

Schwerpunkte. Verkettete Listen. Verkettete Listen: 7. Verkettete Strukturen: Listen. Überblick und Grundprinzip. Vergleich: Arrays verkettete Listen

Schwerpunkte. 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

Mehr

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 4 ArrayList, PriorityQueue, HashSet und HashMap

Javakurs 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

Mehr

Stacks, Queues & Bags. Datenstrukturen. Pushdown/Popup Stack. Ferd van Odenhoven. 19. September 2012

Stacks, 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

Mehr

Java 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 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

Mehr

Java Spickzettel von Panjutorials.de

Java 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

Mehr

Algorithmen und Datenstrukturen

Algorithmen 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

Mehr

EINFÜHRUNG IN DIE PROGRAMMIERUNG

EINFÜ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/

Mehr

Programmieren 2 Java Überblick

Programmieren 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

Mehr

4.4.9 Das Java Collection Framework

4.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

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: 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