Programmieren 2 02 Maps, Sets, Defensive Programmierung
|
|
- Gabriel Fischer
- vor 6 Jahren
- Abrufe
Transkript
1 Programmieren 2 02 Maps, Sets, Defensive Programmierung Bachelor Medieninformatik Sommersemester 2016 Dipl.-Inform. Ilse Schmiedecke schmiedecke@beuth-hochschule.de 1
2 MAP - Zusammenfassung 2 2
3 Assoziative Datenstrukturen: Maps Map: Collection von Assoziationen (Key-Value-Paaren) linkseindeutig Schlüssel-Wert-Paare kommen häufig vor: ini-dateien Property-Dateien Resource-Dateien Verzeichnisse... Map.Entry ist eine innere Klasse von Map für den Benutzer normalerweise nicht nötig 3
4 Map-Methoden Map<K, V> Basismethoden: void clear() boolean isempty() int size() löscht alle Einträge keine Einträge? Anzahl der Einträge boolean containskey(object key) boolean containsvalue(v value) V put(k key, V value) liefert vorherigen Wert, oder null bei Neueintrag V get(object key) liefert value, oder null V remove(object key) liefert den entfernten value, oder null Set<K> keyset() Collection<V> values() Set<Map.Entry> entryset() liefert alle Keys als Set liefert alle Values als Set liefert alle Map-Entries als Set 4 4
5 Map-Methoden Map<K, V> Komfortmethoden (nur der Vollständigkeit halber): V getordefault(object key, V defaultvalue) boolean remove(object key, V value) V putifabsent(k key, V value) boolean replace(k key, V oldval, V newval) liefert ggf. Default-Wert nur, falls Wert auch passt liefert vorh.value oder null ersetzt, falls alter Wert passt Set<Map.Entry> entryset() liefert alle Entry-s als Set (wichtig für AbstractMap!) void putall(map<k, V> map) void putall(map<? extends K,? extends V> map) übernimmt alle Entry-s aus map void foreach(biconsumer<k, V> action) void foreach(biconsumer<? super K,? super V> action) wendet action auf jd. Entry an void replaceall(bifunction<k, V, V> function) ersetzt Entry-s durch Funktionsvoid replaceall(bifunction<? super K,? super V,? extends V> function) wert 5 5
6 Das Map-API 6 6
7 Der "Kniff": Abstrakte Implementierung AbstractMap implementiert fast alle Methoden nur entryset() ist abstrakt und muss der tatsächlichen Datenstruktur der Implementierung angepasst werden. Alles andere lässt mithilfe von entryset() programmieren. Überlegen Sie, wie Sie z.b. get und contains programmieren würden! 7 7
8 HashMap HashMap und TreeMap implementieren beide das Interface Map HashMap ist für den Direktzugriff optimiert: Index wird aus dem Key berechnet ("Hash") Wenn besetzt, wird in der Nähe gespeichert Solange die Füllquote unter ca.75% liegt, super Zugriffszeiten danach reorganisieren (umkopieren in größere Map) gleichmäßige Verteilung ist wichtig (gute Hash-Funktion) 8 8
9 TreeMap TreeMap implementiert zusätzlich das Interface SortedMap Die Keys müssen sortierbar sein: entweder das Interface Comparable implementieren oder es muss einen "Vergleicher" geben, Objekt vom Typ Comparator im Konstruktor übergeben Sehr gutes Suchverhalten bei ausgeglichenem Aufbau sonst Reorganisation ("Balancing") keine Füllquote Sortierte Ausgabe, Frage nach vor/nach direkt möglich es gibt entsprechende Zusatzmethoden: firstentry, firstkey, descendingkeyset, descendingtreemap, headmap, tailmap, higherkey
10 Set - Zusammenfassung 10 10
11 Set : Collection ohne Mehrfacheinträge Set ist eine iterierbare Menge Implementiert Collection (und damit Iterable) eindeutig (keine Mehrfacheinträge) Mengenoperationen addall (Vereinigung) retainall (Schnittmenge) removeall (Differenzmenge) 11 11
12 Set-Methoden Set<E> void clear() booleanisempty() int size() löscht alle Einträge keine Einträge? Anzahl der Einträge boolean contains (Object element) boolean add(e element) boolean remove(object element) false, falls schon vorhanden false, falls nicht vorhanden boolean addall(collection<?> c) true, falls keins vorhanden boolean removeall(collection<?> c) true, falls alle vorhanden boolean retainall(collection<?> c) true, falls alle vorhanden Iterator<E> iterator() Object[] toarray() E[] toarray(e[] array) (vereinfacht) liefert Iterator liefert die Elemente als Object[] liefert die Elemente als E[] 12 12
13 2. Neues Projekt: Movie-Register 13
14 Das Filmregister Suchoptimierte editierbare Liste von Filmen: "Gib mir alle Infos zu 'Der kleine Hobbit'" Ein Film ist ein Datentyp: Film-Objekte enthalten Infos zu Titel, Regisseur, Erscheinungsjahr, Länge, Hauptdarstellern... Die Filmsuche nach Titeln soll besonders unterstützt werden à Implementierung mit Map als Datentyp, genauer Map<String, Movie> 14
15 Der Datentyp Movie (Vorschlag) In der Übung können Sie Ihre eigene Variation einsetzen, z.b. mit Kaufdatum und Preis, wenn Sie eine DVD-Liste bauen wollen mit Sprachenliste mit Bewertungen... 15
16 Details Genre ist als Enum definiert: fsk bleibt int, weil die Werte ja Zahlenwerte sind Es wird aber ein Code für "unbekannt" benötigt: -100 Darstellerliste "featuring" ist ein Set So vermeidet man Doppeleinträge, wenn Schauspieler hinzugefügt werden 16
17 Der Typ IMovieRegister (Vorschlag) Argumentliste, liefert: Movie[] movies Alles aus m übernehmen, aber Titel beibehalten Komfortsuche 17
18 Das könnte interessant werden... So ein Filmregister braucht eigentlich jeder, oder? Vielleicht wollen Sie Ihr fertiges Programm ja weitergeben? Dann sollte es GUT sein: Lesbar und erweiterbar programmiert d.h. es entspricht den Konventionen und enthält keine "Programmierfallen" Robust d.h. kein Bedienfehler sollte es zum Absturz bringen Ausgetestet d.h. Programmierfehler sind weitestgehend ausgeräumt 18
19 Klassenqualität Erwartungskonformität (Good Citizenship) Klasse besitzt Standardkonstruktor Klasse besitzt Kopierkonstruktor Konstruktoren erzeugen ein gültige, sinnvolle Objekte Klasse definiert tostring, equals und hashcode sinnvoll Klasse hat Getter und Setter für Attribute (falls nicht ADT) Robustheit (Monkey Safety) öffentliche Methoden funktionieren zustandsunabhängig (geeigneter Umgang mit unpassenden Objektzuständen) öffentliche Methoden können alle Parameterwerte passenden Typs verarbeiten (ggf. Exception) durch unpassende Parameter oder Objektzustände entsteht kein inkonsistenter Systemzustand 19 19
20 Murphey & Co Fehler kommen vor: Rechne mit dem DAU! Rechne mit dem DAP! Rechne mit dem Zufall! Rechne mit der Komplexität! Rechne mit Sabotage! Rechne mit der Zeit! Rechne mit ALLEM
21 Machen wir aus Movie einen Good Citizen: Standardkonstruktor: Attribute initialisieren, wo nötig: title und germantitle: null lassen genre: auf Genre.Unspecified setzen director: null lassen year: 0 setzen als Code für unbekannt featuring: newhashset<string>, damit bei add keine NullPointerException kommt. length: 0 für unbekannt fsk: -100 für unbekannt 21 21
22 Machen wir aus Movie einen Good Citizen: Kopierkonstruktor: Alle Attribute übernehmen featuring: falls null, new HashSet<String>, damit bei add keine NullPointerException kommt
23 Machen wir aus Movie einen Good Citizen: Weitere Konstruktoren: Sinnvolle Attributkombinationen für die Objekterzeugung featuring kann z.b. durch eine Argumentliste gefüllt werden: Argumentliste liefert: String[] actors. Muss letzter Parameter sein 23 23
24 Machen wir aus Movie einen Good Citizen: Getter und Setter sind klar Private Attribute mit öffentlichem getter u. (ggf.) setter heißen auch "Properties" equals, tostring und hashcode generieren und dann bearbeiten equals: welche Attribute gehen in die Gleichheit ein (z.b. Bewertungen nicht)? manchmal zusätzlich weniger genau: matches tostring: Formatierung und Attributwahl für die Ausgabe, z.b. in einer Liste manchmal zusätzlich genauer: tostringwithdetails hashcode: prägnante Attribute wählen (z.b. dieselben wie bei equals) 24 24
25 Beispiel matches 25
26 Beispiel equals In diesem Fall wurden nur die ersten 3 Zeilen aus dem generierten Code übernommen Die komplizierten Gleichheitsbedingungen wurden von Hand programmiert, damit sie übersichtlich bleiben 26
27 Und die Robustheit? Movie ist vor allem Datentyp enthält getter, setter, equals, tostringund hashcode: à Normalerweise keine Robustheitsprobleme. Man könnte settitle nur bei null funktionieren lassen, zum Ändern updatetitle definieren, damit der Titel nicht "versehentlich" überschrieben wird Der Parametertyp von match ist anders als bei equals, das ist vielleicht unerwartet. Der Compiler überprüft aber die richtige Verwendung. 27
28 Jetzt das MovieRegister: Good Citizen Konstruktor muss den Datenbehälter (Map) initialisieren ggf. Grunddatenbestand eintragen Kopierkonstruktor kopiert die Map (und ggf. alle Verwaltungsattribute) Getter und Setter entfallen: ADT hashcode und equals immer definieren ggf. auf die Map zurückführen tostring ist praktisch als schnelle Testausgabe: Was steht bisher drin? 28
29 Implementierungsansatz Robustheit schon im Kopierkonstruktor: wenn register null ist, neue Map erzeugen! 29
30 Movie Register: Robustheit Hier müssen wir erst die Regeln festlegen: Wie soll das Register funktionieren? Was sind gültige Systemzustände? Englischer und deutscher Titel sollen Schlüssel sein! beide Schlüssel sind also im Wert enthalten! get und search sollen für englische und deutsche Titel funktionieren search soll mit einem beliebigen Teil des Titels funktionieren null ist kein gültiger Schlüssel. addmoviedarf nicht überschreiben. dafür gibt es updatemovie und updatetitle wenn die Titel passen, ist es derselbe Film, evtl. mit unterschiedlich vollständigen Einträgen. containsmovie überprüft nur die Schlüssel 30
31 MovieRegister : Robustheit Argument auf null und auf containsmovie prüfen Argument auf null prüfen. Einfacher oder doppelter Titelabgleich (matches)? Argument auf null und leeren String prüfen Argument auf null und auf containsmovie prüfen etc... 31
32 Robustheits - Reaktionen Was tun, wenn eine Prüfung negativ ausfällt? Zunächst nur Schaden verhindern, Arbeit verweigern return, return null oder return false Über die richtige Fehlerbehandlung sprechen wir nächstes Mal. richtig geraten: Exceptions 32
33 Wozu brauchen wir Set? Jede Map ist linkseindeutig d.h. die Menge der Schlüssel ist ein Set wird geliefert von der Methode keyset() damit ist auch die Menge der Einträge ein Set, geliefert von der Methode entryset() Suchergebnisse sollten nur einmal gelistet werden: searchmovie() liefert ein Set von Movies In unserem Fall sind auch die Values eindeutig beide Schlüssel sollen dasselbe Movie-Objekt referenzieren daher liefert auch movielist() ein Set von Movies 33
34 Map-Methoden Map<K, V> Basismethoden: void clear() boolean isempty() int size() löscht alle Einträge keine Einträge? Anzahl der Einträge boolean containskey(object key) boolean containsvalue(v value) V put(k key, V value) liefert vorherigen Wert, oder null bei Neueintrag V get(object key) liefert value, oder null V remove(object key) liefert den entfernten value, oder null Set<K> keyset() Collection<V> values() Set<Map.Entry> entryset() liefert alle Keys als Set liefert alle Values als Set liefert alle Map-Entries als Set 34 34
35 Zum Schluss: Testtreiber schreiben! Schreiben Sie zum Testen eine Main-Methode in MovieRegister MovieRegister instanziieren und mit allerlei Filmen füllen (zum Testen nicht zu viele) Zustand ausgeben: Zahl der Einträge, Zahl der Schlüssel, alle Filme (Movie tostring oder MovieRegister tostring) Einige Filme hinzufügen, löschen, ändern Zustand ausgeben Robustheit testen (Null- und leere Parameter, vorhandenes hinzufügen...) Zustand ausgeben Eine Liste mit 20 Filmen gibt es als Download J Tipps: Schreiben Sie sich einen passenden Konstruktor für Movies Schreiben Sie eine Methode populateregister() oder einen Konstruktor mit einer List<Movie> als Parameter Sie können Sie häufiger nutzen 35
36 Das war der Start ins Filmregister Es wird uns weiter begleiten... J 36
Programmieren 2 03 Exceptions, Assertions und Fehlerbehandlung
Programmieren 2 03 Exceptions, Assertions und Fehlerbehandlung Bachelor Medieninformatik Sommersemester 2016 Dipl.-Inform. Ilse Schmiedecke schmiedecke@beuth-hochschule.de 1 Klassenqualität Qualitätsziel:
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)
MehrProgrammieren 2 01 Organisation und Wiedereinstieg
Programmieren 2 01 Organisation und Wiedereinstieg Bachelor Medieninformatik Sommersemester 2016 Dipl.-Inform. Ilse Schmiedecke schmiedecke@beuth-hochschule.de 1 Überblick Thema Programmiertechnik und
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
Mehr19 Collections Framework
Collection = Containterklasse, die andere Objekte enthält. Inhalte: Schnittstellen Implementierungen Algorithmen Vorteile: Einheitlicher Zugriff auf Containerobjekte. Abstraktion von den Implementierungsdetails.
MehrKapitel 12: Java Collection Teil II
Kapitel 12: Java Collection Teil II Übersicht Set und TreeSet Map und TreeMap 12-1 In diesem Kapitel Iterable Interface Klasse extends implements Collection Queue List Set Map Deque
MehrKapitel 12: Java Collection Teil II
Kapitel 12: Java Collection Teil II Übersicht Set und TreeSet Map und TreeMap 12-1 In diesem Kapitel Iterable Interface Klasse extends implements Collection Queue List Set Map Deque
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
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
MehrRechtsbelehrung. Java und OOP Das Buch Christian Silberbauer 144
Rechtsbelehrung Dieser Foliensatz ist urheberrechtlich geschützt. Änderungen an den Folien sind untersagt. Ausschließlich eine nicht-kommerzielle Nutzung ist kostenfrei. Andernfalls wird eine Gebühr fällig.
MehrJava Generics & Collections
Praktikum Effizientes Programmieren (Sommersemester 2018) Dennis Reuling 1 / 1 Praktikum Effizientes Programmieren (Sommersemester 2018) Agenda Teil 1 Generics 2 / 1 Praktikum Effizientes Programmieren
MehrProgrammieren in Java
Datenstrukturen 2 Wiederholung: Typvariable Analog zu Variablen, die für Daten stehen, stehen Typvariablen für einen bestimmten Typ Typvariablen werden im in der Klassendefinition nach dem Klassennamen
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
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]...
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
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:
MehrEinstieg in die Informatik mit Java
1 / 15 Einstieg in die Informatik mit Java Collections Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 15 1 Überblick Collections 2 Hierarchie von Collections 3 Verwendung
MehrNützliche Utility-Klassen des JDK
Nützliche Utility-Klassen des JDK java.util :, Properties, I18N, Scanner java.text : Ausgabeformatierung u.a. java.util.prefs : Hierarchische Konfigurationsdaten (1.5) java.util.logging : Aufzeichnung
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
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,
MehrSelbststudium OOP7 & ALG2 Auftrag
Selbststudium OOP7 & ALG2 Auftrag Kapitel 5.6 1. zu bearbeitende Aufgaben: 5.24 bis 5.30 5.24: Return Method Set entryset() V get(object key) Set keyset() V put(k key, V value) void
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
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 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
Mehr1. Welches Interface ist nicht von Collection abgeleitet? A. B. C. D. List Set Map SortedSet. 2. Welche Aussagen sind richtig?
Prof. Dr. Detlef Krömker Ashraf Abu Baker Robert-Mayer-Str. 10 60054 Frankfurt am Main Tel.: +49 (0)69798-24600 Fax: +49 (0)69798-24603 EMail: baker@gdv.cs.uni-frankfurt.de 1. Welches Interface ist nicht
MehrProgrammieren 1 09 Vererbung und Polymorphie
Programmieren 1 09 Vererbung und Polymorphie Bachelor Medieninformatik Sommersemester 2015 Dipl.-Inform. Ilse Schmiedecke schmiedecke@beuth-hochschule.de 1 I. VERERBUNG 2 2 Vererbung Von Interfaces übernehmen
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,
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 2 15 Abstrakte Datentypen
Programmieren 2 15 Abstrakte Datentypen Bachelor Medieninformatik Sommersemester 2015 Dipl.-Inform. Ilse Schmiedecke schmiedecke@beuth-hochschule.de 1 Verallgemeinerte Datenbehälter Typ, der eine variable
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
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
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,
MehrCollections des Typs Set. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 09: Collections 3. Collections des Typs Set.
Universität Osnabrück 1 3 - Objektorientierte Programmierung in Java Vorlesung 09: Collections 3 Eigenschaften Eine Collection vom Typ Set ist die Java- Repräsentation einer mathematischen Menge. Sie enthält
MehrVorlesung Programmieren
Vorlesung Programmieren 12 Java API Jun.-Prof. Dr.-Ing. Anne Koziolek Version 1.1 ARBEITSGRUPPE ARCHITECTURE-DRIVEN REQUIREMENTS ENGINEERING (ARE) INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION
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
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
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
MehrHashmap: Video Erklärung
Hashmap Hashmap: Video Erklärung Definition und Motivation Array: Zugriff über Index=Zahl Wert(Value) Schlüssel(Key) Maier, Klaus 21 Array Hashtag: Zugriff über einen nichtnumerischen Wert 06431 92310
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,
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
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
MehrSoftwareentwicklung II (IB) Blatt 4. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München
Softwareentwicklung II (IB) Blatt 4 Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 19.05.2018 23:27 Abgabe der Aufgabe auf diesem Blatt: bis 13.06.18, 08:00 Uhr durch Pushen
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,
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
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
MehrJava Generics & Collections
Java Praktikum Effizientes Programmieren (Sommersemester 2015) Dennis Reuling Agenda 1 2 3 1 / 30 Praktikum Effizientes Programmieren (Sommersemester 2015) Java Subtyping Teil 1 2 / 30 Praktikum Effizientes
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
MehrGenerische Polymorphie in Java-
Generische Polymorphie in Java- Johannes Waldmann (HTWK Leipzig) Plan Beispiel Collections, Iteratoren, Maps Schnittstellen und Implementierungen Genaueres zum Typsystem Details zu Implementierungen zur
MehrAllgemeine Informatik II
Klausur zur Vorlesung Allgemeine Informatik II Prof. J. Fürnkranz Technische Universität Darmstadt Sommersemester 2009 (Klausur SS09) Termin: 3. 9. 2009 Name: Vorname: Matrikelnummer: Fachrichtung: Punkte:
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
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
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.
MehrSoftwareentwicklung II (IB) Blatt 5. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München
Softwareentwicklung II (IB) Blatt 5 Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 12.06.2018 21:35 Inhaltsverzeichnis Aufgabe 1 Vorlesungen und Prüfungen 1 Group........................................
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
Mehr12.3 Ein Datenmodell für Listen
Zweiter Versuch: Wir modellieren ein Element der Liste zunächst als eigenständiges Objekt. Dieses Objekt hält das gespeicherte Element. Andererseits hält das Element- Objekt einen Verweis auf das nächste
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
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 11: Vererbung Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil Einführung in die Vererbung Motivation Das Schlüsselwort extends Einführendes
MehrObjektorientierung III
Lehrstuhl für Bioinformatik Einführung in die Programmierung für Bioinformatiker Prof. B. Rost, Dr. L. Richter Blatt 10 9.1.2017 Objektorientierung III Aufgabe 10.1. Wir sind doch alle gleich In der Vorlesung
MehrPrüfung Softwareentwicklung II (IB)
Hochschule für angewandte Wissenschaften München Fakultät für Informatik und Mathematik Studiengruppe IB 2 B, IB 2 C Sommersemester 2013 Prüfung Softwareentwicklung II (IB) Datum : 11.07.2013, 08:30 Uhr
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
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
MehrTutoraufgabe 1 (Collections):
Prof. aa Dr. J. Giesl Programmierung WS17/18 M. Hark, J. Hensel, D. Korzeniewski Tutoraufgabe 1 (Collections): In dieser Aufgabe geht es um die Implementierung einer Datenstruktur für Mengen, welche in
MehrEinführung in die Programmierung Generische Programmierung. Thomas R. Gross. Department Informatik ETH Zürich
252-0027 Einführung in die Programmierung 10.0 Generische Programmierung Thomas R. Gross Department Informatik ETH Zürich Copyright (c) Pearson 2013 and Thomas Gross 2016 All rights reserved. Uebersicht
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
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
MehrWeiterführende Themen
Collections-Framewort Weiterführende Themen 13 13. Collections-Framewort Weiterführende Themen Hash-Tabellen und Bäume Bei größeren Datenmengen, die in Form von Arrays oder verketteten Listen gespeichert
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
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,
MehrGrundlagen der Informatik 0
Technische Universität Darmstadt 01.07.2013 Grundlagen der Informatik 0 Vorlesung 0 Java ist eine Programmiersprache Ilkay Baytekin Douglas Crockford http://media.smashingmagazine.com/wp-content/uploads/2012/04/doug-crockford-image.jpg
MehrTeil VII. Hashverfahren
Teil VII Hashverfahren Überblick 1 Hashverfahren: Prinzip 2 Hashfunktionen 3 Kollisionsstrategien 4 Aufwand 5 Hashen in Java Prof. G. Stumme Algorithmen & Datenstrukturen Sommersemester 2009 7 1 Hashverfahren:
MehrIT I: Heute. Klasse Object. equals, hashcode, tostring. HashSet IT I - VO 6 1
IT I: Heute Klasse Object equals, hashcode, tostring HashSet 14.11.2017 IT I - VO 6 1 Wissensüberprüfung Wie ruft man statische Methode auf? Gegeben Klasse Fix mit statischer Methode static boolean foxi(string
MehrTag 8 Repetitorium Informatik (Java)
Tag 8 Repetitorium Informatik (Java) Dozent: Michael Baer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Informatik-Repetitorium
MehrSoftware Entwicklung 1
Software Entwicklung 1 Annette Bieniusa AG Softech FB Informatik TU Kaiserslautern Was gefällt Ihnen? Sehr ausführliches Skript Fragen / Aufgaben in der Vorlesung Praktische Beispiele Tolle Aufgabenblätter
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
MehrObjektorientierte Programmierung Studiengang Medieninformatik
Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 5 12.04.2017 Was bisher geschah... Objektorientierte Programmierung Klassen und Objekte, Attribute
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,
MehrC# - Einführung in die Programmiersprache Arrays, Enumeration und Collections. Leibniz Universität IT Services Anja Aue
C# - Einführung in die Programmiersprache Arrays, Enumeration und Collections Leibniz Universität IT Services Anja Aue Arrays... speichern mehrere Werte vom gleichen Datentyp. fassen zusammenhängende Werte
MehrAllgemeine Informatik II SS :30-11:30 Uhr
TU Darmstadt FB Informatik Prof. J. Fürnkranz Semestralklausur - Lösungsvorschlag Allgemeine Informatik II SS 2005 20.07.2005 09:30-11:30 Uhr Hinweise: Als Hilfsmittel ist nur ein schwarzer oder blauer
MehrProgrammierkurs Java
Programmierkurs Java Java Generics und Java API (1/2) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck https://www.itm.uni-luebeck.de/people/fischer Datenstrukturen In vielen Sprachen
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
MehrLösungshinweise/-vorschläge zum Übungsblatt 11: Software-Entwicklung 1 (WS 2017/18)
Dr. Annette Bieniusa Mathias Weber, M. Sc. Peter Zeller, M. Sc. TU Kaiserslautern Fachbereich Informatik AG Softwaretechnik Lösungshinweise/-vorschläge zum Übungsblatt 11: Software-Entwicklung 1 (WS 2017/18)
MehrSoftwareentwicklung II (IB) Blatt 2. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München
Softwareentwicklung II (IB) Blatt 2 Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 18.04.2018 08:07 Abgabe der Aufgabe auf diesem Blatt: bis 02.05.18, 08:00 Uhr durch Pushen
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
MehrAlgorithmen und Datenstrukturen. Algorithmen und Datenstrukturen. B6.1 Einführung. B6.2 Symboltabellen. B6.3 Einfache Implementationen
Algorithmen und Datenstrukturen 03. April 2019 B6. Symboltabellen a Algorithmen und Datenstrukturen B6. Symboltabellen 1 Marcel Lüthi and Gabriele Röger Universität Basel 03. April 2019 a Folien basieren
MehrIT I: Heute. Klasse Object. equals, hashcode, tostring. HashSet IT I - VO 6 1
IT I: Heute Klasse Object equals, hashcode, tostring HashSet 13.11.2018 IT I - VO 6 1 Organisatorisches Wissensüberprüfung gleich im Anschluss an die VO UE heute schon früher (ab 11:45) heute beide UE-Gruppen
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
MehrProbeklausur Java Einführung in die Informatik. Wintersemester 2016/2017
Fakultät IV NI & CV Java Einführung in die Informatik Wintersemester 2016/2017 Hinweis: Diese ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der schriftlichen Prüfung des Moduls Einführung
MehrUniversität Augsburg, Institut für Informatik Sommersemester 2001 Prof. Dr. Martin Ester 16. Juli Klausur
Universität Augsburg, Institut für Informatik Sommersemester 2001 Prof. Dr. Martin Ester 16. Juli 2001 Stefan Holland Informatik II Hinweise: Klausur Verwenden Sie für Ihre Lösungen ausschließlich den
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 09: Vererbung Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil Einführung in die Vererbung Motivation Das Schlüsselwort extends Einführendes
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
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 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