Java Collection Framework

Größe: px
Ab Seite anzeigen:

Download "Java Collection Framework"

Transkript

1 Java Collection Framework Programmiermethodik Eva Zangerle Universität Innsbruck

2 Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc Spezielle Themen Generische Programmierung Java Collection-Framework Streams Unit-Tests Einleitung Ausgewählte Klassen Iteratoren Wichtige Themen Entwurfsmuster - Eine Einführung GUI-Programmierung Java Virtual Machine Ausblick Programmiermethodik - Java Collections 2

3 Einleitung

4 Motivation Programmierer benötigt sehr oft bestimmte Datenstrukturen. Datenstrukturen sollten schon vorhanden sein. Datenstrukturen sollten generisch sein. Allgemeine Algorithmen (anwendbar auf unterschiedliche Datenstrukturen) sollten vorhanden sein. Lösung? Java Collection-Framework Programmiermethodik - Java Collections 4

5 Grundlagen Collection-Framework befindet sich im Paket java.util. Für unterschiedliche Datenstrukturen stehen unterschiedliche Interfaces zur Verfügung. Die Interfaces geben die Schnittstellen für den Zugriff auf die Datenstrukturen an (z.b. Einfügen in Listen). Die konkrete Verwaltung wird durch konkrete Implementierungen dieser Interfaces bestimmt. Seit Java 1.5 ist das Collection-Framework generisch. Jedes Interface kann durch unterschiedliche Implementierungen unterstützt werden (z.b. LinkedList, ArrayList). Es gibt Algorithmen, die auf Collection-Objekte (Listen etc.) angewandt werden können (z.b. Sortieren). Programmiermethodik - Java Collections 5

6 Interfaces (Überblick) Interfaces sind die Grundlage (java.util.collection oder java.util.map) Basisoperationen (Hinzufügen, Finden, etc.) Mengenoperationen (andere Collection einfügen) Feldoperationen (z.b. andere Ansichten auf key/value) Applikationen sollten ihren Code ausschließlich auf Interfaces aufbauen Austauschbarkeit. Interfaces bilden Hierarchien. Programmiermethodik - Java Collections 6

7 Collection Interfaces (Seit 1.5) Collection Eine Collection verwaltet Objekte (Elemente). Interface enthält generelle Methoden (für alle Collection-Typen). Es gibt keine direkte Implementierung dieses Interfaces. Set Eine Collection die keine duplizierten Elemente enthält. List Eine geordnete Collection (mit duplizierte Elementen) Elemente können über einen Index angesprochen werden (nicht immer effizient). Queue Verwaltung von Warteschlangen (ähnlich zu Listen) FIFO, Prioritätswarteschlangen Map SortedSet und SortedMap Maps verwalten Schlüssel mit dazugehörigen Werten. Schlüssel sind eindeutig. Jeder Schlüssel kann einen dazugehörigen Wert haben. Sind spezielle Versionen von Set und Map, bei denen die Elemente (Schlüssel) in aufsteigender Reihenfolge verwaltet werden. Programmiermethodik - Java Collections 7

8 Implementierung Es gibt unterschiedliche Ansätze für die Implementierung von konkreten Collection-Klassen: Generelle Implementierungen, die häufig in Applikationen verwendet werden. Spezielle Implementierungen Nebenläufige Implementierungen (für Multithreaded-Applikationen, siehe Entwurf von Softwaresystemen). Wrapper-Implementierungen, die mit anderen Implementierungen benutzt werden (oft generelle Implementierungen) und zusätzliche oder eingeschränkte Funktionalität zur Verfügung stellen. Einfache effiziente Implementierungen (Mini-Implementierungen) für spezielle Collections. Abstrakte Implementierungen, die ein Implementierungsskelett zur Verfügung stellen und damit die Implementierung eigener Collection- Klassen erleichtern. Programmiermethodik - Java Collections 8

9 Generelle Implementierungen (1) Implementierungen Interface Hashtabellen Dynamische Arrays Bäume Verkettete Listen HashTabellen + Verkettete Listen Set HashSet TreeSet Linked- HashSet List ArrayList LinkedList Queue LinkedList Map HashMap TreeMap Linked- HashMap Programmiermethodik - Java Collections 9

10 Generelle Implementierungen (2) Es existieren generelle Implementierungen für die Interfaces Set, List und Map. Interfaces SortedSet und SortedMap werden von TreeSet bzw. TreeMap zusätzlich implementiert. Queue-Interface wird z.b. von den folgenden Klassen implementiert: LinkedList FIFO Warteschlangen PriorityQueue Prioritätswarteschlange (ist eher eine spezielle Implementierung) Programmiermethodik - Java Collections 10

11 Seit Java 1.6 Deque (Double ended queue) Einfügen und Löschen an beiden Enden Wird u.a. von der Klasse LinkedList implementiert. NavigableSet und NavigableMap Sollen SortedSet und SortedMap ersetzen. Sind Erweiterungen, die das Navigieren (aufsteigend, absteigend) erlauben. Zusätzliche nebenläufige Implementierungen (siehe Entwurf von Softwaresystemen) Zusätzliche Hilfsmethoden Programmiermethodik - Java Collections 11

12 Ausgewählte Klassen

13 Eigenschaften ausgewählter Klassen ArrayList Indexzugriff auf Elemente ist überall ungefähr gleich schnell. Einfügen und Löschen ist am Listenende schnell und wird mit wachsender Entfernung vom Listenende langsamer. LinkedList Indexzugriff auf Elemente ist an den Enden schnell und wird mit der Entfernung von den Enden langsamer. Einfügen und Löschen ohne Indexzugriff ist überall gleich schnell. Ansonsten abhängig vom Indexzugriff. HashSet null-elemente sind zulässig. Einfügen, Suchen und Löschen sind immer gleich schnell. Aber: Rehashing kann zu Performance-Problemen führen (siehe auch API- Beschreibung). TreeSet null-elemente sind nicht erlaubt. Die Geschwindigkeit von Einfügen, Suchen und Löschen ist proportional zum Logarithmus der Anzahl der Elemente. Auf die Elemente eines TreeSets muss eine Ordnung definiert sein (müssen vergleichbar sein, d.h. das Interface Comparable<T> implementieren). Programmiermethodik - Java Collections 13

14 Methoden (Beispiele) Für Listen und Sets gibt es einige gemeinsame Methoden. Beispiele (T ist der Elementtyp) int size() boolean add(t t) boolean remove(t t) boolean contains(t t) T get(int i) T set(int i, T t) int indexof(t t) Programmiermethodik - Java Collections 14

15 Beispiel import java.util.arraylist; import java.util.list; public final class CollectionTest1 { private CollectionTest1() { } Immer kleinstmöglichen Typ verwenden! } public static void main(final String[] args) { final List<Integer> cl = new ArrayList<Integer>(); for (int x = 1; x < 10; x++) { cl.add(x); } } System.out.println(cl); System.out.println(cl.get(3)); System.out.println(cl.size()); System.out.println(cl.remove(2)); System.out.println(cl); System.out.println(cl.contains(7)); System.out.println(cl.set(5, 22)); System.out.println(cl); System.out.println(cl.indexOf(22)); Ausgabe [1, 2, 3, 4, 5, 6, 7, 8, 9] [1, 2, 4, 5, 6, 7, 8, 9] true 7 [1, 2, 4, 5, 6, 22, 8, 9] 5 Programmiermethodik - Java Collections 15

16 Maps Arrays und Collections speichern einzelne Werte des Elementtyps (über Indexwerte adressiert, Typ der Indexwerte ist int). Maps sind eine Verallgemeinerung von Arrays mit einem beliebigen Indextyp. Beispiel Telefonbuch Name mit Telefonnummer verknüpft. Indextyp ist daher String (Name). Map-Eintrag hat einen Schlüssel (key) und einen Wert (value). Programmiermethodik - Java Collections 16

17 Maps (key-value) Jedem Schlüssel ist genau ein Wert zugeordnet. Eine Map ist eine Menge von Schlüssel-Werte Paaren. Schlüssel müssen innerhalb einer Map eindeutig sein. Werte müssen nicht eindeutig sein. Wie bei Sets gibt es grundsätzlich zwei Versionen. HashMap Ungeordnet Hashing TreeMap Geordnet Rot-Schwarz-Baum (balanciert) Bestimmte Methoden wie put, get, containskey, containsvalue, remove etc. werden angeboten. Programmiermethodik - Java Collections 17

18 Beispiel import java.util.hashmap; import java.util.map; public final class CollectionTest2 { } public static void main(final String[] args) { final Map<String, Double> m = new HashMap<String, Double>(); m.put("pc 1", ); m.put("spiele-pc", ); m.put("my-cloud", ); System.out.println(m); System.out.println(m.get("PC 1")); System.out.println(m.containsKey("PC 1")); System.out.println(m.remove("PC 1")); System.out.println(m); } Ausgabe: {Spiele-PC=2500.0, My-Cloud= , PC 1=1199.9} true {Spiele-PC=2500.0, My-Cloud= } Programmiermethodik - Java Collections 18

19 Maps (equals, hashcode) HashMap und andere Klassen des Collection-Frameworks rufen die Methode equals auf, um die Gleichheit von Schlüsselobjekten (Elementen) festzustellen. Weiters wird von einigen Klassen die Methode hashcode verwendet. Daher sollten alle Klassen die Methoden equals und hashcode überschreiben. Die von der Klasse Object geerbten Versionen dieser Methoden sind selten ausreichend, weil sie nur die Referenzen prüfen, den Inhalt aber ignorieren. Programmiermethodik - Java Collections 19

20 Maps und Collections (1) Maps implementieren nicht das Interface Collection, sind aber Teil des Collection-Frameworks. Maps und Collections können verknüpft werden. Methode keyset liefert die Menge aller Schlüssel einer Map in Form eines Sets. Methode values liefert die Werte der Map. Über die Organisation der Werte ist nichts bekannt. Das Ergebnis ist vom Typ Collection. Programmiermethodik - Java Collections 20

21 Maps und Collections (2) Die Methode entryset liefert die Menge der Einträge der Map. Der Elementtyp ist Map.Entry<K,V> für eine Map mit dem Schlüsseltyp K und dem Werttyp V. Map.Entry definiert die Methoden: getkey getvalue Maps kennen keine Iteratoren, Sets hingegen schon. Daher kann man auf diesem Wege über eine Map iterieren. Beispiel folgt! Programmiermethodik - Java Collections 21

22 Maps und Collections (3) Die drei Methoden keyset, values und entryset erzeugen keine neue Collection. Sie liefern sogenannte Sichten ( views ). Daher sind diese Methoden auch bei großen Datenmengen sehr effizient. Es werden keine Daten kopiert! Sichten greifen direkt auf die zugrunde liegende Map zu. Änderungen an den Sichten wirken sich auf die darunterliegende Map aus und umgekehrt. Wird eine Map geändert, dann wirkt sich das auf alle Sichten aus. Programmiermethodik - Java Collections 22

23 Iteratoren

24 Iteratoren allgemein (1) Durchlaufen von Collections Iterator wird durch eine Methode (z.b. iterator) angeboten (zurückgegeben). Ein Iterator bietet folgende Methoden an hasnext testet, ob es weitere Elemente gibt (true) oder nicht (false). next liefert das nächste Element und rückt den Iterator gleichzeitig um ein Element weiter, d.h. aufeinanderfolgende Aufrufe von next liefern immer neue Elemente. remove (optional) entfernt das zuletzt zurückgegebene Element. Programmiermethodik - Java Collections 24

25 Iteratoren allgemein (2) Iteratoren sind eine Verallgemeinerung von Indexwerten. Werden ähnlich wie Indexwerte verwendet, ihr innerer Aufbau bleibt aber verborgen. Alle Iteratoren implementieren das generische Interface Iterator<T>. Iteratoren haben den gleichen Elementtyp wie die zugrunde liegende Collection. Programmiermethodik - Java Collections 25

26 Eigenschaften von Iteratoren Ein Iterator läuft von Beginn an Element für Element durch eine Collection (keine Sprünge, kein Start an beliebiger Stelle). Ein Iterator steht immer zwischen zwei Elementen (oder vor dem ersten, nach dem letzten). Iterator ist verbraucht, wenn er am Ende angekommen ist (keine Wiederverwendung). Für einen neuen Durchlauf muss ein neuer Iterator erzeugt werden. Innerhalb einer Collection können gleichzeitig mehrere Iteratoren unterwegs sein. Mehrere Iteratoren sind unabhängig voneinander und können einzeln bewegt werden. Programmiermethodik - Java Collections 26

27 Beispiel (ArrayList) List<String> ls = new ArrayList<String>(); ls.add("a"); ls.add("b"); ls.add("a"); Muss übereinstimmen! ls.add("b"); Iterator<String> is = ls.iterator(); while (is.hasnext()){ String s = is.next(); if (s.equals("a")) is.remove(); } System.out.println(ls); // [B B] Programmiermethodik - Java Collections 27

28 Beispiel (Iterator, Map) import java.util.hashmap; import java.util.iterator; import java.util.map; import java.util.set; public final class CollectionTest3 { private CollectionTest3() { } } public static void main(final String[] args) { final Map<String, Double> m = new HashMap<String, Double>(); } m.put("pc1", ); m.put("pc2", ); m.put("pc3", ); System.out.println(m); final Set<Map.Entry<String, Double>> mes = m.entryset(); final Iterator<Map.Entry<String, Double>> imes = mes.iterator(); while (imes.hasnext()) { final Map.Entry<String, Double> item = imes.next(); if (item.getvalue() > 1000) { System.out.println(item.getKey()); } } Iterator über die Menge der Einträge Ausgabe: {PC3=980.0, PC1=1199.9, PC2=1999.9} PC1 PC2 Programmiermethodik - Java Collections 28

29 Listen-Iteratoren Für Listen gibt es noch eigene Iteratoren. Diese implementieren das Interface ListIterator<T>. Ein Listen-Iterator kann sich vorwärts und rückwärts bewegen. Zusätzlich zu den Methoden eines Iterators werden zum Beispiel angeboten: previous und hasprevious, die sich auf das vorhergehende Element beziehen. previousindex und nextindex liefern die Indexwerte des vorhergehenden und nächsten Elements. Ein Listen-Iterator ist nicht verbraucht, wenn er am Ende der Liste angekommen ist. Programmiermethodik - Java Collections 29

30 Modifikation und Iteratoren (1) Wird eine Collection modifiziert (z.b. neues Element einfügen), dann werden alle Iteratoren ungültig. Beim nächsten Zugriffsversuch auf einen Iterator nach einer Änderung wirft dieser eine ConcurrentModificationException. Wird als fail-fast bezeichnet. Iterator gerät nicht irgendwann in einen inkonsistenten Zustand. Iterator wird sofort unbrauchbar gemacht. Iteratoren reagieren nur auf strukturelle Änderungen, d.h. Ersetzen eines Elements verändert die Struktur nicht und lässt Iteratoren intakt. Programmiermethodik - Java Collections 30

31 Modifikation und Iteratoren (2) Iteratoren bieten selbst Änderungsoperationen an, bei denen der betreffende Iterator funktionsfähig bleibt. Alle Iteratoren definieren die Methode remove, die das zuletzt überquerte Element aus der Collection entfernt. Aber Iterator muss sich zuerst bewegen, dann erst kann remove aufgerufen werden (löscht das letzte Element, das zurückgegeben wurde). Nach einem Aufruf muss erst wieder ein Element überquert werden. Bei Listen-Iteratoren ist das zuletzt überquerte Element abhängig von der Laufrichtung (kann vom Listenanfang aus gesehen vor oder hinter dem Iterator sein). Programmiermethodik - Java Collections 31

32 Modifikation und Iteratoren (3) Bei Listen-Iteratoren gibt es neben remove noch zusätzliche Methoden. add fügt das Element in der Lücke ein, in der der Iterator steht. set ersetzt das zuletzt überquerte Element durch das übergebene Element. Bei Änderungen über einen Iterator bleibt nur dieser eine Iterator intakt. Andere Iteratoren, die in der gleichen Collection unterwegs sind, werden ungültig (bei set bleiben alle intakt keine Strukturänderung). Programmiermethodik - Java Collections 32

33 foreach - Schleife So wie Arrays können auch Collections mit der foreach- Schleife durchlaufen werden. Beispiel List<Integer> cl = new ArrayList<Integer>(); for (Integer in : cl) System.out.println(in); Die foreach-schleife unterliegt den gleichen Beschränkungen wie bei Arrays. foreach-schleifen arbeiten wie Iteratoren. Eine Änderung der Collection während des Durchlaufens führt zu einer Ausnahme. Implementiert eine Klasse das Interface Iterable<T>, dann können Objekte dieser Klasse mit einer foreach-schleife durchlaufen werden. Programmiermethodik - Java Collections 33

34 Wichtige Themen

35 Abstrakte Collection-Klassen Unterstützen die Entwicklung neuer Collection-Klassen. Abstrakte Klassen implementieren schon einen großen Teil eines Interfaces und lassen bestimmte Teile noch offen. Eine neue Collection-Klasse kann daher schon auf eine abstrakte Klasse aufbauen (muss nicht alle Methoden eines Interfaces implementieren). Vorgehensweise bei der Implementierung einer neuen Collection-Klasse: 1. Auswählen einer geeigneten abstrakten Klasse von der geerbt wird. 2. Implementierung aller abstrakten Methoden. 3. Sollte die Collection modifizierbar sein, dann müssen auch einige konkrete Methoden überschrieben werden (wird in der API- Dokumentation der abstrakten Klasse beschrieben). 4. Testen der neuen Klasse (inklusive Performance). Programmiermethodik - Java Collections 35

36 Beispiele für abstrakte Klassen Beispiele AbstractCollection AbstractSet AbstractList (basierend auf Array) AbstractSequentialList (basierend auf verketteter Liste) AbstractQueue AbstractMap In der API-Dokumentation jeder abstrakten Klasse wird genau beschrieben, wie man eine Klasse davon ableiten muss. Grundlegende Implementierung Welche Methoden müssen implementiert werden. Welche Methoden müssen überschrieben werden, wenn man Modifikationen zulassen möchte. Programmiermethodik - Java Collections 36

37 Algorithmen im Collection-Framework Das Collection-Framework bietet neben vielen vordefinierten Containerklassen auch Algorithmen für die Verarbeitung von Container-Klassen an. Diese Algorithmen werden als statische Methoden (polymorphe Methoden) in der Hilfsklasse Collections gesammelt. Algorithmen (Beispiele) sort Sortiert die Elemente einer generischen Liste nach aufsteigender Größe. binarysearch Sucht ein Element in der sortierten Liste (Voraussetzung) und liefert einen Index zurück, wenn das Element gefunden wurde (ansonsten eine negative Zahl). max Liefert das größte Element einer Collection. shuffle Mischt die Elemente einer generischen Liste zufällig. Programmiermethodik - Java Collections 37

38 Vergleiche Viele Methoden (z.b. sort, binarysearch) vergleichen Elemente der Größe nach. Für beliebige Elementtypen ist aber nicht ohne weiters klar, welches von zwei Objekten das größere ist. Klassen müssen das generische Interface Comparable<T> implementieren. Es muss die Vergleichsmethode compareto implementiert werden, mit dem Ergebnis > 0 wenn das Objekt größer als der Parameter ist, < 0 wenn das Objekt kleiner als der Parameter ist, 0 wenn das Objekt und der Parameter gleich sind. Programmiermethodik - Java Collections 38

39 Comparator Oft sollen Objekte nach verschiedenen Kriterien verglichen werden. Daher sind viele Collection-Methoden mit einem zusätzlichen Parameter, einem Comparator, überladen. Erfüllt den gleichen Zweck. Zum Vergleich wird aber das übergebene Comparator-Objekt benutzt. Comparator<T> ist ein generisches Interface mit einer Methode compare. Methode akzeptiert zwei Objekte des Elementtyps und liefert ein int- Ergebnis für den Vergleich der zwei Objekte. Programmiermethodik - Java Collections 39

40 Comparator-Beispiel List<String> ss = new ArrayList<String>(); ss.add("hans"); ss.add("sepp"); ss.add("franz"); System.out.println(ss); // [Hans, Sepp, franz] Collections.sort(ss); System.out.println(ss); // [Hans, Sepp, franz] Comparator<String> ignorecasecomparator = new Comparator<String>() { public int compare(string s1, String s2) { return (s1.tolowercase().compareto(s2.tolowercase())); } }; Collections.sort(ss, ignorecasecomparator); System.out.println(ss); //[franz, Hans, Sepp] Programmiermethodik - Java Collections 40

41 Unveränderliche Collection-Klassen In vielen Fällen möchte man Container-Klassen zur Verfügung stellen, die unveränderlich sind. Die Klasse Collections bietet einige statische Methoden, mit denen unveränderliche Sichten auf vorhandene Container erzeugt werden können. Sichten auf eine Datenstruktur kopieren eine zugrunde liegende Datenstruktur nicht. Bieten eine eingeschränkte Darstellung (z.b. Sperren aller schreibenden Methoden). Die Datenstruktur wird nicht verändert. Programmiermethodik - Java Collections 41

42 Beispiel Methoden (Beispiele) public static <T> List<T> unmodifiablelist(list<? extends T> list) public static <K,V> Map<K,V> unmodifiablemap(map<? extends K,? extends V> m) public static <T> Set<T> unmodifiableset(set<? extends T> s) Anwendung HashMap<String,Integer> m = new HashMap<String,Integer>(); Map<String,Integer> rom = Collections.unmodifiableMap(m); m.put("test",1); // rom.put("test",1);fehler! Programmiermethodik - Java Collections 42

43 Übersicht (wichtige Klassen) Typ Ordnung bleibt Null-Elemente Duplikate ArrayList ja ja ja LinkedList ja ja ja HashSet nein ja nein TreeSet ja nein nein HashMap nein ja Schlüssel nein, Werte ja TreeMap ja Schlüssel nein, Werte ja Schlüssel nein, Werte ja Programmiermethodik - Java Collections 43

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

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

12 Collections Framework. Interfaces Maps and Collections. Collection Interface. Überblick. Collection = Containterklasse, die andere Objekte enthält.

12 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

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

OCP Java SE 8. Collections

OCP Java SE 8. Collections OCP Java SE 8 Collections Collections (Interfaces) Iterable Collection Set List Queue SortedSet Deque Collection List erlaubt Duplikate und null behält die Reihenfolge Set erlaubt keine Duplikate Queue

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

Mengen und Multimengen

Mengen 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

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

Propädeutikum Programmierung in der Bioinformatik

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

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

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

Programmierkurs Java

Programmierkurs 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

Mehr

Nützliche Utility-Klassen des JDK

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

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

Objektorientierte Programmierung. Kapitel 21: Einführung in die Collection Klassen

Objektorientierte 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

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

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

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

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

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

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

Kapitel 12: Java Collection Teil II

Kapitel 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

Mehr

Kapitel 12: Java Collection Teil II

Kapitel 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

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

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

Rechtsbelehrung. Java und OOP Das Buch Christian Silberbauer 144

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

Mehr

Collections. Arthur Zaczek. Nov 2015

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

Mehr

Software Entwicklung 1

Software 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

Mehr

Generische Polymorphie in Java-

Generische 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

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

Info B VL 14: Java Collections/Reflections

Info 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

Mehr

Java Collections Framework (JCF)

Java 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

Mehr

ALP II Dynamische Datenmengen

ALP 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

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

Kapitel 6: Java Collection Teil I

Kapitel 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

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren Java Generics und Java API Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck https://www.itm.uni-luebeck.de/people/fischer Programme verarbeiten Daten Häufig

Mehr

Kapitel 7: Java Collection Teil I

Kapitel 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

Mehr

Collections. Arthur Zaczek

Collections. 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,

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

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

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

1. Welches Interface ist nicht von Collection abgeleitet? A. B. C. D. List Set Map SortedSet. 2. Welche Aussagen sind richtig?

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

Mehr

Software Entwicklung 1

Software 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

Mehr

Sammlungen Listen Mengen Abbildungen Algorithmen Wrapper

Sammlungen Listen Mengen Abbildungen Algorithmen Wrapper Sammlungen Listen Mengen Abbildungen Algorithmen Wrapper Pratikum SWE 2 M. Löberbauer T. Kotzmann H. Prähofer 1 Einleitung Collections sind Datenstrukturen für Sammlungen von Daten Stacks Queues Priority

Mehr

Programmiertechnik II

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

Mehr

Programmiertechnik II

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

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

Objektorientierte Implementierung

Objektorientierte Implementierung Objektorientierte Implementierung 10) Verfeinern von Assoziationen mit dem Java-2 Collection Framework Softwaretechnologie, Prof. Uwe Aßmann, Prof. Heinrich Hussmann 1 Objektorientierte Implementierung

Mehr

Hashmap: Video Erklärung

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

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

Programmieren in Java

Programmieren 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

Mehr

Selbststudium OOP7 & ALG2 Auftrag

Selbststudium 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

Mehr

Javakurs für Fortgeschrittene

Javakurs für Fortgeschrittene Javakurs für Fortgeschrittene Einheit 09: Weitere Datenstrukturen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda Datenstrukturen Motivation Die Collection API Interface Collection

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 schmiedecke@beuth-hochschule.de 1 Faulheit professionell: Fertige Datenbehälter

Mehr

Software Entwicklung 1

Software 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

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

Programmierzertifikat Objekt-Orientierte Programmierung mit Java

Programmierzertifikat 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

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

Teil II) Objektorientierte Implementierung 10) Verfeinern von UML-Assoziationen mit dem Java-2 Collection Framework

Teil II) Objektorientierte Implementierung 10) Verfeinern von UML-Assoziationen mit dem Java-2 Collection Framework Teil II) Objektorientierte Implementierung 10) Verfeinern von UML-Assoziationen mit dem Java-2 Collection Framework Prof. Dr. rer. nat. Uwe Aßmann Institut für Software- und Multimediatechnik Lehrstuhl

Mehr

3. Übungsbesprechung Programmkonstruktion

3. Ü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

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

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

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

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

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

Java Generics & Collections

Java 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

Mehr

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

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

Programmierkurs Java

Programmierkurs 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

Mehr

Die Java - Collections API

Die 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

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

equals und hashcode SortedSet NavigableSet Assoziative Container Programmieren II Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2010 1 / 32

equals 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

Mehr

Programmiermethodik 3. Klausur Lösung

Programmiermethodik 3. Klausur Lösung Programmiermethodik 3. Klausur Lösung 9. 1. 2014 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 20 2 16 3 45 4 19 5 20 Gesamt 120 1 Seite 2 von 10 Aufgabe 1) Objekt-Orientierung und Vererbung

Mehr

II.4.6 Collections - 1 -

II.4.6 Collections - 1 - 1. Unterklassen und Vererbung 2. Abstrakte Klassen und Interfaces 3. Modularität und Pakete 4. Ausnahmen (Exceptions) 5. Generische Datentypen 6. Collections II.4.6 Collections - 1 - Typische Datenstrukturen

Mehr

Vorlesung 07: Collections. Peter Thiemann SS 2010

Vorlesung 07: Collections. Peter Thiemann SS 2010 Vorlesung 07: Collections Peter Thiemann Universität Freiburg, Germany SS 2010 Peter Thiemann (Univ. Freiburg) JAVA 1 / 45 Inhalt Collections Iteratoren Implementierungen Das Interface Collection Beispiel:

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

Programmiermethodik 1. Klausur

Programmiermethodik 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

Mehr

Programmiertechnik II

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

Mehr

Dynamische Datenstrukturen

Dynamische Datenstrukturen Dynamische Datenstrukturen B-Bäume größere Datenmengen verwalten Extern speichern Art der Speicherung berücksichtigen sonst kein optimaler Datenzugriff möglich Art der Speicherung großer Datenmengen Magnetplatten

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

Das Interface-Konzept am Beispiel der Sprache Java

Das Interface-Konzept am Beispiel der Sprache Java Das Interface-Konzept am Beispiel der Sprache Java Klaus Kusche, November 2013 Inhalt Motivation: Wozu braucht man Interfaces? Interfaces in Java Was spricht gegen die große Lösung? Voraussetzungen Kenntnisse

Mehr

Programmieren II. Hierarchie von Collections. Vorlesung 3. Handout S. 1. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester 2010

Programmieren II. Hierarchie von Collections. Vorlesung 3. Handout S. 1. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester 2010 Programmieren II Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2010 1 / 22 Collections und Iteratoren ListIterator Sets 2 / 22 Hierarchie von Collections Die sequenziellen Container (ArrayList

Mehr

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

Objektorientiertes Programmieren mit Java

Objektorientiertes 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

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

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

Listen. Prof. Dr. Christian Böhm. in Zusammenarbeit mit Gefei Zhang. WS 07/08

Listen. Prof. Dr. Christian Böhm. in Zusammenarbeit mit Gefei Zhang.  WS 07/08 Listen Prof. Dr. Christian Böhm in Zusammenarbeit mit Gefei Zhang http://www.dbs.ini.lmu.de/lehre/nfinfosw WS 07/08 2 Ziele Standardimplementierungen für Listen kennenlernen Listeniteratoren verstehen

Mehr

Enumerations und innere Klassen

Enumerations und innere Klassen Enumerations und innere Klassen Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung

Mehr

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 2017 Marc Bux, Humboldt-Universität zu Berlin Agenda 1. (Sortierte) Listen 2. Stacks & Queues 3. Datenstrukturen 4. Rekursion und vollständige Induktion

Mehr

Datenstrukturen und Algorithmen. Vorlesung 5

Datenstrukturen und Algorithmen. Vorlesung 5 Datenstrukturen und Algorithmen Vorlesung 5 Inhaltsverzeichnis Vorige Woche: Sortierte Listen Zyrkuläre Listen Verkettete Listen auf Arrays Heute betrachten wir: Skip Listen ADT Set ADT Map Iterator ADT

Mehr

ALP II Dynamische Datenmengen Datenabstraktion

ALP 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

Kapitel 14: Collections und Generics Software Entwicklung 1

Kapitel 14: Collections und Generics Software Entwicklung 1 Kapitel 14: Collections und Generics Software Entwicklung 1 Annette Bieniusa, Mathias Weber, Peter Zeller In diesem Kapitel führen wir das Konzept von abstrakten Datentypen ein. Wir haben mit Listen bereits

Mehr

Vorlesung Programmieren

Vorlesung 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

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