Vorlesung Programmieren
|
|
- Benjamin Pohl
- 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
2 Programme verarbeiten Daten Häufig benötigt: Datenstrukturen zum Speichern Bisher: Spezielle Datenstrukturen pro Programm: Security - 04 Cryptology #2
3 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
4 Beispiel: Eigene generische Liste Security - 04 Cryptology #4
5 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
6 Mögliche Implementierung Security - 04 Cryptology #6
7 Mögliche Implementierung Security - 04 Cryptology #7
8 Mögliche Implementierung Security - 04 Cryptology #8
9 Mögliche Implementierung Was praktisches: schöne Ausgabe der Instanz Security - 04 Cryptology #9
10 Verwendung Security - 04 Cryptology #10
11 Der Obstkorb und die Liste Security - 04 Cryptology #11
12 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
13 Dynamische Liste Security - 04 Cryptology #13
14 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
15 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
16 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
17 Teil der Vererbungshierarchie Collection AbstractList AbstractSet ArrayList... Vector TreeSet... HashSet Security - 04 Cryptology #17
18 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
19 Interface java.util.collection 19
20 Instanziierung einer Collection Beispiel: Verwendung einer Liste Zunächst Wahl einer Implementierung Dann Instanziierung Collection c = new ArrayList(); 20
21 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
22 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
23 Verwendung von Iteratoren Vorsicht: nicht 2x next() aufrufen pro 1x hasnext() z.b. innerhalb der while-schleife 23
24 Verwendung von Iteratoren Oft besser: Referenz auf nächstes Objekt einer Variable zuweisen 24
25 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
26 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
27 Das Interface Iterable 27
28 Foreach und Collections Beispiel: Umwandlung einer for-schleife in eine foreach-schleife Security - 04 Cryptology #28
29 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
30 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
31 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
32 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
33 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; } void setvalue(t val) { this.val = val; } } Object getvalue() { return val; } } T getvalue() { return val; } 33
34 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
35 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
36 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
37 Beispiel: Ohne und mit Generics Security - 04 Cryptology #37
38 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
39 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
40 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
41 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
42 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
43 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
44 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
45 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
46 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
47 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
48 Beispiel (ohne Sonderfälle) public class Mensch implements Comparable<Mensch> { private int groesse; } public int compareto(mensch other) { return groesse other.groesse; } 48
49 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
50 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
51 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
52 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
53 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
54 Stacks Implementierung in Java: java.util.stack<t> Erbt von Vector Ergänzt Funktionen eines Stacks 54
55 Was fällt Ihnen auf bei dieser Implementierung eines Stacks? 55
56 Weitere wichtige Packages von Java java.lang.* java.util.* java.io.* java.net.* 56
57 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
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
MehrVorlesung Programmieren. Programme verarbeiten Daten. Generische Datenstrukturen. Java Generics und Java API
Vorlesung Programmieren Java Generics und Java API Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck https://www.itm.uni-luebeck.de/people/fischer Programme verarbeiten Daten Häufig
MehrJava 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]...
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
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 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
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
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
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
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 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
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
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,
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
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
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
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
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
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
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
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
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
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 Schulung. Objektorientierte Programmierung in Java Teil V: Die Java Collection Klassen. Prof. Dr. Nikolaus Wulff
Java Schulung Objektorientierte Programmierung in Java Teil V: Die Java Collection Klassen Prof. Dr. Nikolaus Wulff Collections in Java 2 Java 2 Collections: http://java.sun.com/products/jdk/1.2/docs/guide/collections/index.html
MehrVorlesung 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
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
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
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
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
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
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
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
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,
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
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
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
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 +
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
MehrAusnahmebehandlungen am Beispiel
Ausnahmebehandlungen am Beispiel public interface MyQueue{ public void enqueue(e o); //Einfuegen // throws FullQueueException // in spaeteren Versionen public E dequeue(); //Rueckgabe und Loeschen public
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,
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
MehrVerkettete Datenstrukturen: Listen
Verkettete Datenstrukturen: Listen 2 Listen Formal: Liste = endliche Folge von Elementen [a 1, a 2,..., a n ]. Spezialfall: leere Liste [ ]. Länge einer Liste = Anzahl der Elemente (bei leerer Liste: 0).
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,
MehrXIII: Verkettete Listen
XIII: Verkettete Listen Verwendung von Listen in Java Das Prinzip des Iterators Implementierung von einfach verketteten Listen Implementierung von doppelt verketteten Listen Informatik I XIII: Verkettete
MehrInformatik II Übung 06. Benjamin Hepp 5 April 2017
Informatik II Übung 06 Benjamin Hepp benjamin.hepp@inf.ethz.ch 5 April 2017 Nachbesprechung U5 5 April 2017 Informatik II - Übung 01 2 Nachbesprechung U5 1. Einfach verkettete Listen Keine Probleme 2.
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
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
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
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
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
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
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,
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
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/
MehrProgrammierkurs Java
Programmierkurs Java Abstrakte Klassen und Methoden & Interfaces Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Vererbungshierarchie
MehrWie kann man es verhindern das Rad immer wieder erneut erfinden zu müssen?
Generic Programming without Generics from JAVA5 Motivation Wie kann man es verhindern das Rad immer wieder erneut erfinden zu müssen? Ein Bespiel: sie haben bereits eine Klasse zur Multiplikation von Matrizen
MehrGliederung. 5. Compiler. 6. Sortieren und Suchen. 7. Graphen
Gliederung 5. Compiler 1. Struktur eines Compilers 2. Syntaxanalyse durch rekursiven Abstieg 3. Ausnahmebehandlung 4. Arrays und Strings 6. Sortieren und Suchen 1. Grundlegende Datenstrukturen 2. Bäume
MehrVom objektorientierten Entwurf zur Implementierung in Java. 2. Dezember 2014
Vom objektorientierten Entwurf zur Implementierung in Java 2. Dezember 2014 Überblick Verwendung von Frameworks und Bibliotheken Was enthält die Java Standard Edition? Implementieren mit dem Java Collections
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,
MehrSchnittstellen implementieren am Beispiel Suchbaum
Motivation Informatik mit Java und BlueJ Schnittstellen implementieren am Beispiel Suchbaum von Bernhard Rosing Schreiben Sie eine Klasse Person, deren Instanzen in ein TreeSet (Suchbaum) eingefügt werden
MehrVererbung. CoMa-Übung XI TU Berlin. CoMa-Übung XI (TU Berlin) Vererbung / 47
Vererbung CoMa-Übung XI TU Berlin 16.01.2013 CoMa-Übung XI (TU Berlin) Vererbung 16.01.2013 1 / 47 Themen der Übung Themen heute Evaluation Rücksprachen IDEs Eclipse & Netbeans Packages, innere Klassen
MehrKapitel 18: Java ein paar Kleinigkeiten zum Schluss. Grundlagen der Programmierung 1. Holger Karl. Wintersemester 2016/2017. Inhaltsverzeichnis 1
Kapitel 18: Java ein paar Kleinigkeiten zum Schluss Grundlagen der Programmierung 1 Holger Karl Wintersemester 2016/2017 Inhaltsverzeichnis Inhaltsverzeichnis 1 Abbildungsverzeichnis 2 Liste von Definitionen
MehrAlgorithmen und Programmierung II
Algorithmen und Programmierung II Abstrakte Klassen, Schnittstellen und ADT Prof. Dr. Margarita Esponda SS 2012 1 Interfaces In Java sind Interfaces sowohl ein Abstraktionsmittel (zum Verbergen von Details
MehrVorlesung Programmieren
Vorlesung Programmieren 15 Java API Prof. Dr. Ralf H. Reussner Version 1.0 LEHRSTUHL FÜR SOFTWARE-DESIGN UND QUALITÄT (SDQ) INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD), FAKULTÄT FÜR INFORMATIK
MehrEINFÜHRUNG IN DIE PROGRAMMIERUNG
EINFÜHRUNG IN DIE PROGRAMMIERUNG GRUNDLAGEN Tobias Witt 24.03.2014 ORGANISATORISCHES tobias.witt@hhu.de 10:30-12:00 Täglich Übungen zur Vertiefung Laptop hier nicht erforderlich Aber später in den Übungen!
MehrEinfache Liste: Ein Stapel (Stack) Ansatz. Schaubild. Vorlesung 1. Handout S. 2. Die einfachste Form einer Liste ist ein Stapel (stack).
Programmieren I Martin Schultheiß Hochschule Darmstadt Sommersemester 2011 1 / 64 2 / 64 Motivation Hauptteil dieser Vorlesung sind die so genannten. Zur Motivation (und als Vorbereitung der Datencontainer-Klassen
MehrProgrammiermethodik 1. Klausur
Programmiermethodik 1. Klausur 27. 6. 2013 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 21 2 20 3 19 4 19 5 21 6 20 Gesamt 120 1 Seite 2 von 18 Aufgabe 1) Objekt-Orientierung und Vererbung
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
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
MehrProgrammieren in Java
Datenstrukturen 2 Was bisher geschah Bisher wurden zur Gruppierung von Daten immer Arrays genutzt Bis auf die Index-Funktion gibt es allerdings keinerlei logischer Operationen, mit denen der Array manipuliert
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
MehrGrundkurs Informatik. Viele Schränke bilden eine Schrankwand
Viele Schränke bilden eine Schrankwand Das einfache Projekt Schrankwand könnte so erweitert werden, dass die Schrankwand eine beliebige Zahl von Schränken enthalten kann. In diesem Fall brauchen wir statt
MehrObjektorientierte Programmierung. Kapitel 14: Interfaces
14. Interfaces 1/26 Objektorientierte Programmierung Kapitel 14: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2013/14 http://www.informatik.uni-halle.de/ brass/oop13/
MehrObjektsammlungen. Programmieren 2. Konzepte (Wiederholung vom Dienstag)
Vgl. Kapitel 4 im BlueJ-Buch. Bis Kapitel 6 bleiben wir weiter dicht am BlueJ-Buch, das somit die eigentliche Referenz bildet. Objektsammlungen Andreas Zeller 1 Programmieren 2 Andreas Zeller 2 Konzepte
MehrProgrammieren in Java
Datenstrukturen 2 Was bisher geschah Bisher wurden zur Gruppierung von Daten immer Arrays genutzt Bis auf die Index-Funktion gibt es allerdings keinerlei logischer Operationen, mit denen der Array manipuliert
MehrProgrammierkurs Java
Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE38-Generics (Stand 28.09.2012) Aufgabe 1: Schauen Sie sich die generischen Klassen des Paketes java.util an. Aufgabe 2: Ausgangslage sind die folgenden
Mehr4. Algorithmen und Datenstrukturen I Grundlagen der Programmierung 1 (Java)
4. Algorithmen und Datenstrukturen I Grundlagen der Programmierung 1 (Java) Fachhochschule Darmstadt Haardtring 100 D-64295 Darmstadt Prof. Dr. Bernhard Humm FH Darmstadt, 8./15. November 2005 Einordnung
MehrEinführung in die Programmierung
Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Semestralklausur Einführung in die Programmierung Semestralklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList
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
MehrSoftwaretechnik WS 16/17. Übungsblatt 01
Softwaretechnik WS 16/17 Übungsblatt 01 Was ist eine Klasse? Definition der Object Management Group: A class describes a set of objects that share the same specifications of features, constraints, and
MehrProbleme ohne generische Typen
Generics seit Java1.5 SSJ Kapitel 15 Probleme ohne generische Typen Klassen, die mit Objekten verschiedenen Typs arbeiten können class List { Object[ ] data = ; void add(object x) { Object remove() { Probleme
MehrProgrammieren in C. Rekursive Strukturen. Prof. Dr. Nikolaus Wulff
Programmieren in C Rekursive Strukturen Prof. Dr. Nikolaus Wulff Rekursive Strukturen Häufig müssen effizient Mengen von Daten oder Objekten im Speicher verwaltet werden. Meist werden für diese Mengen
MehrEinführung in die Programmierung
Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In
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,
MehrPhilipp Güttler Progwerkstatt. Enums, Interfaces und Generics
Philipp Güttler 18.11.2008 Progwerkstatt Enums, Interfaces und Generics Seite 2 Enums Enum Typen Definition komplexer Datentyp, der festen Menge von Konstanten enthält Information der Reihenfolge der Konstanten
MehrDie Schnittstelle Comparable
Die Schnittstelle Comparable Wir wollen Such- und Sortieroperationen für beliebige Objekte definieren. Dazu verwenden wir die vordefinierte Schnittstelle Comparable: public interface Comparable { int compareto(object
Mehr1. Typen und Literale (6 Punkte) 2. Zuweisungen (6 = Punkte)
Praktische Informatik (Software) Vorlesung Softwareentwicklung 1 Prof. Dr. A. Ferscha Hauptklausur am 01. 02. 2001 Zuname Vorname Matr. Nr. Stud. Kennz. Sitzplatz HS / / / Punkte Note korr. Fügen Sie fehlende
MehrObjektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)
Stefan Brass: OOP (Java), 22. Aufzählungstypen 1/20 Objektorientierte Programmierung Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester
Mehr> Datenstrukturen in Java (Teil 2)
Datenstrukturen > Datenstrukturen in (Teil 2) Mark Egloff 2006 1 Lernziel Heute Abend > Sie lernen verschieden Datenstrukturen und Ihre Bedeutung kennen z.b. Arrays, Listen, Bäume, Maps > Sie kennen die
MehrJava I Vorlesung 6 Referenz-Datentypen
Java I Vorlesung 6 Referenz-Datentypen 7.6.2004 Referenzen this, super und null Typkonvertierung von Referenztypen Finale Methoden und Klassen Datentypen in Java In Java gibt es zwei Arten von Datentypen:
MehrInstitut für Programmierung und Reaktive Systeme 17. Juli Programmieren II. Übungsklausur
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 17. Juli 2015 Hinweise: Klausurtermine: Programmieren II Übungsklausur Programmieren I: 7. September
MehrCollections. Datamining und Sequenzanalyse. Marvin Meusel, Bertram Vogel
Collections Datamining und Sequenzanalyse Marvin Meusel, Bertram Vogel Arrays Arrays Arrays erzeugen int[] arr1 = new int[3] int[] arr2 = {1,2,3 Falls möglich primitive Datentypen verwenden int[] arr1
Mehrclass ListElement { int value; ListElement next; ListElement() { next=null; value=0;
Listenimplementierung Übung 1, Aufgabe 4. c 2004 Evgeny Matusov, Thomas Deselaers Zunächst definieren wir die Basisklasse für die Listenelemente, die gleichzeitig einen Verweis auf weitere Listenelemente
MehrDatenstrukturen / Container in Java
Datenstrukturen / Container in Java Mathematik / Algebraischer Datentyp / Containerklassen Enum-Klassen Arrays (Felder) = elementare Container Algorithmen mit Arrays Prof. Dr. E. Ehses, 2014 1 Mathematik
MehrDynamische Typinformation A01 OOP. Dynamische Typinformation
2013-11-13 Dynamische Typinformation 1 185.A01 OOP Dynamische Typinformation 2013-11-13 Dynamische Typinformation 2 OOP Dynamische Typabfragen Abfrage der Klasse eines Objects: Class y = x.getclass();
Mehr12. Dynamische Datenstrukturen
Motivation: Stapel. Dynamische Datenstrukturen Verkettete Listen, Abstrakte Datentypen Stapel, Warteschlange, Implementationsvarianten der verketteten Liste 0 04 Motivation: Stapel ( push, pop, top, empty
MehrFH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Referenzen. Referenzen
5 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Referenzen Beispiel an der einfachen Klasse Walze: public class Walze { int id; public Walze(int id) { this.id = id; Verwenden
MehrSchnittstellen, Stack und Queue
Schnittstellen, Stack und Queue Schnittstelle Stack Realisierungen des Stacks Anwendungen von Stacks Schnittstelle Queue Realisierungen der Queue Anwendungen von Queues Hinweise zum Üben Anmerkung: In
Mehr