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

Größe: px
Ab Seite anzeigen:

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

Transkript

1 Sebastian java.util.* Draack JAVA Collection-API 1

2 Collection-API Begriffe Einleitung, Motivation Iterator Comparator Interfaces Abstrakte Klassen Konkrete Klassen Utility-Klassen Beispiele Zusammenfassung Fragen 2

3 Begriffe Collection: Kollektion, Sammlung API: Application Programming Interface (Programmierschnittstelle) 3

4 Speichern von Daten Variablen Arrays Strukturen (C) Objekte Container / Collections int, float, double int[], float[], double[] struct public class? 4

5 Strukturieren von Daten Effektive Algorithmen benötigen strukturierte Daten 5

6 Compare Comparable Comparator Eclipse Beispiel public interface Comparable<T> { int compareto(t o); } public interface Comparator<T> { int compare(t o1, T o2); } 6

7 Iterate Iterable Iterator public interface Iterator<E> { boolean hasnext(); E next(); void remove(); //optional } List<String> list = new LinkedList<String>(); list.add("..."); Iterator<String> it = stringlist.iterator(); while (it.hasnext()) { String str = it.next(); System.out.println("String: "+ str); } public interface ListIterator<E> extends boolean hasnext(); E next(); boolean hasprevious(); E previous(); int nextindex(); int previousindex(); void remove(); //optional void set(e e); //optional void add(e e); //optional } Eclipse Beispiel 7

8 Collection API - Übersicht Handout + 8 Quelle:

9 Interfaces Collection List Set Map 9

10 Interface Collection Optionale Methoden werfen ggf. OperationNot- SupportedExceptions public interface Collection<E> extends Iterable<E> // Basic operations int size(); boolean isempty(); boolean contains(object element); boolean add(e element); //optional boolean remove(object element); //optional Iterator<E> iterator(); // Bulk operations boolean containsall(collection<?> c); boolean addall(collection<? extends E> c); //o boolean removeall(collection<?> c); //optiona boolean retainall(collection<?> c); //optional void clear(); //optional // Array operations Object[] toarray(); <T> T[] toarray(t[] a); 10 }

11 Interface List Optionale Methoden werfen ggf. OperationNot- SupportedExceptions public interface List<E> extends Collection<E> { // Basic operations E get(int index); E set(int index, E element); //optional boolean add(e element); //optional void add(int index, E element); //optional E remove(int index); //optional boolean addall(int index, Collection<? extends E> c); //optional // Search int indexof(object o); int lastindexof(object o); // Iteration ListIterator<E> listiterator(); 11

12 Interface Set Optionale Methoden werfen ggf. OperationNot- SupportedExceptions public interface Set<E> extends Collection<E> { // Basic operations int size(); boolean isempty(); boolean contains(object element); boolean add(e element); //optional boolean remove(object element); //optional Iterator<E> iterator(); // Bulk operations boolean containsall(collection<?> c); boolean addall(collection<? extends E> c); //o boolean removeall(collection<?> c); //optiona boolean retainall(collection<?> c); //optional void clear(); //optional // Array Operations Object[] toarray(); <T> T[] toarray(t[] a); 12 }

13 Interface Map Optionale Methoden werfen ggf. OperationNot- SupportedExceptions public interface Map<K,V> { // Basic operations V put(k key, V value); V get(object key); V remove(object key); boolean containskey(object key); boolean containsvalue(object value); int size(); boolean isempty(); // Bulk operations void putall(map<? extends K,? extends V> m); void clear(); // Collection Views public Set<K> keyset(); public Collection<V> values(); public Set<Map.Entry<K,V>> entryset(); // Interface for entryset elements public interface Entry { K getkey(); V getvalue(); V setvalue(v value); } 13 }

14 Interface Queue FIFO-Prinzip public interface Queue<E> extends Collection<E> E element(); boolean offer(e e); E peek(); E poll(); E remove(); } Mit Exception Null statt Exception enqueue add() offer() dequeue element() peek() delete remove() poll() 14

15 Interface Deque FIFO-Prinzip & LIFO-Prinzip Mit Exception Null statt Exception enqueue addfirst/last() offerfirst/last() dequeue getfirst/last() peekfirst/last() delete removefirst/last() pollfirst/last() public interface Queue<E> extends Collection<E> { boolean add(e e); void addfirst(e e); void addlast(e e); boolean contains(object o); Iterator<E> descendingiterator(); E element(); E getfirst(); E getlast(); Iterator<E> iterator(); boolean offer(e e); boolean offerfirst(e e); boolean offerlast(e e); E peek(); E peekfirst(); E peeklast(); E poll(); E pollfirst(); E polllast(); E pop(); E push(); E remove(); int size(); } 15

16 Abstrakte Implementierungen AbstractCollection AbstractSet AbstractList AbstractSequentialList AbstractMap AbstractQueue 16

17 AbstractCollection Implementierung import java.util.iterator; public class ClassName extends public Iterator<E> iterator() { // TODO Auto-generated method stub return null; } public int size() { // TODO Auto-generated method stub return 0; } 17

18 AbstractSet Implementierung import java.util.iterator; public class ClassName extends public Iterator<E> iterator() { // TODO Auto-generated method stub return null; } public int size() { // TODO Auto-generated method stub return 0; } 18

19 AbstractList Implementierung public class ClassName extends java.util.abstractlist<e> public E get(int arg0) { // TODO Auto-generated method stub return null; public int size() { // TODO Auto-generated method stub return 0; } } 19

20 AbstractSequentialList Implementierung import java.util.listiterator; public class ClassName extends public ListIterator<E> listiterator(int index) { // TODO Auto-generated method stub return null; } public int size() { // TODO Auto-generated method stub return 0; } 20

21 AbstractMap Implementierung import java.util.set; public class ClassName extends java.util.abstractmap<k, V>{ public Set<java.util.Map.Entry<K, V>> entryset() { // TODO Auto-generated method stub return null; } 21

22 AbstractQueue Implementierung 22

23 Collection API Classes I Listen (List) Mengen (Set) ArrayList LinkedList HashSet TreeSet LinkedHashSet Implementiert Listen-Funktionalität durch die Abbildung auf ein Feld; implementiert die Schnittstelle List. LinkedList ist eine doppelt verkettete Liste, also eine Liste von Einträgen mit einer Referenz auf den jeweiligen Nachfolger und Vorgänger. Das ist nützlich beim Einfügen und Löschen von Elementen an beliebigen Stellen innerhalb der Liste. Eine Implementierung der Schnittstelle Set durch ein schnelles Hash-Verfahren. Implementierung von Set durch einen Baum, der alle Elemente sortiert hält. Eine schnelle Mengen- Implementierung, die sich parallel auch die Reihenfolge der eingefügten Elemente merkt. 23

24 Collection API Classes I Listen (List) Mengen (Set) ArrayList LinkedList HashSet TreeSet LinkedHashSet Implementiert Listen-Funktionalität durch die Abbildung auf ein Feld; implementiert die Schnittstelle List. LinkedList ist eine doppelt verkettete Liste, also eine Liste von Einträgen mit einer Referenz auf den jeweiligen Nachfolger und Vorgänger. Das ist nützlich beim Einfügen und Löschen von Elementen an beliebigen Stellen innerhalb der Liste. Eine Implementierung der Schnittstelle Set durch ein schnelles Hash-Verfahren. Implementierung von Set durch einen Baum, der alle Elemente sortiert hält. Eine schnelle Mengen- Implementierung, die sich parallel auch die Reihenfolge der eingefügten Elemente merkt. 24

25 Collection API Classes I Listen (List) Mengen (Set) ArrayList LinkedList HashSet TreeSet LinkedHashSet Implementiert Listen-Funktionalität durch die Abbildung auf ein Feld; implementiert die Schnittstelle List. LinkedList ist eine doppelt verkettete Liste, also eine Liste von Einträgen mit einer Referenz auf den jeweiligen Nachfolger und Vorgänger. Das ist nützlich beim Einfügen und Löschen von Elementen an beliebigen Stellen innerhalb der Liste. Eine Implementierung der Schnittstelle Set durch ein schnelles Hash-Verfahren. Implementierung von Set durch einen Baum, der alle Elemente sortiert hält. Eine schnelle Mengen- Implementierung, die sich parallel auch die Reihenfolge der eingefügten Elemente merkt. 25

26 Collection API Classes I Listen (List) Mengen (Set) ArrayList LinkedList HashSet TreeSet LinkedHashSet Implementiert Listen-Funktionalität durch die Abbildung auf ein Feld; implementiert die Schnittstelle List. LinkedList ist eine doppelt verkettete Liste, also eine Liste von Einträgen mit einer Referenz auf den jeweiligen Nachfolger und Vorgänger. Das ist nützlich beim Einfügen und Löschen von Elementen an beliebigen Stellen innerhalb der Liste. Eine Implementierung der Schnittstelle Set durch ein schnelles Hash-Verfahren. Implementierung von Set durch einen Baum, der alle Elemente sortiert hält. Eine schnelle Mengen- Implementierung, die sich parallel auch die Reihenfolge der eingefügten Elemente merkt. 26

27 Collection API Classes I Listen (List) Mengen (Set) ArrayList LinkedList HashSet TreeSet LinkedHashSet Implementiert Listen-Funktionalität durch die Abbildung auf ein Feld; implementiert die Schnittstelle List. LinkedList ist eine doppelt verkettete Liste, also eine Liste von Einträgen mit einer Referenz auf den jeweiligen Nachfolger und Vorgänger. Das ist nützlich beim Einfügen und Löschen von Elementen an beliebigen Stellen innerhalb der Liste. Eine Implementierung der Schnittstelle Set durch ein schnelles Hash-Verfahren. Implementierung von Set durch einen Baum, der alle Elemente sortiert hält. Eine schnelle Mengen- Implementierung, die sich parallel auch die Reihenfolge der eingefügten Elemente merkt. 27

28 Collection API Classes II Assoziativspeicher (Map) Schlange (Queue) HashMap TreeMap LinkedHashMap WeakHashMap LinkedList ArrayBlockingQueue PriorityQueue Implementiert einen assoziativen Speicher durch ein Hash-Verfahren. Exemplare dieser Klasse halten ihre Elemente in einem Binärbaum sortiert; implementiert NavigableMap. Ein schneller Assoziativspeicher, der sich parallel auch die Reihenfolge der eingefügten Elemente merkt. Verwaltet Elemente mit schwachen Referenzen, sodass die Laufzeitumgebung bei Speicherknappheit Elemente entfernen kann. Die verkettete Liste implementiert Queue und auch Deque. Eine blockierende Warteschlange. Prioritätswarteschlange. 28

29 Collection API Classes II Assoziativspeicher (Map) Schlange (Queue) HashMap TreeMap LinkedHashMap WeakHashMap LinkedList ArrayBlockingQueue PriorityQueue Implementiert einen assoziativen Speicher durch ein Hash-Verfahren. Exemplare dieser Klasse halten ihre Elemente in einem Binärbaum sortiert; implementiert NavigableMap. Ein schneller Assoziativspeicher, der sich parallel auch die Reihenfolge der eingefügten Elemente merkt. Verwaltet Elemente mit schwachen Referenzen, sodass die Laufzeitumgebung bei Speicherknappheit Elemente entfernen kann. Die verkettete Liste implementiert Queue und auch Deque. Eine blockierende Warteschlange. Prioritätswarteschlange. 29

30 Collection API Classes II Assoziativspeicher (Map) Schlange (Queue) HashMap TreeMap LinkedHashMap WeakHashMap LinkedList ArrayBlockingQueue PriorityQueue Implementiert einen assoziativen Speicher durch ein Hash-Verfahren. Exemplare dieser Klasse halten ihre Elemente in einem Binärbaum sortiert; implementiert NavigableMap. Ein schneller Assoziativspeicher, der sich parallel auch die Reihenfolge der eingefügten Elemente merkt. Verwaltet Elemente mit schwachen Referenzen, sodass die Laufzeitumgebung bei Speicherknappheit Elemente entfernen kann. Die verkettete Liste implementiert Queue und auch Deque. Eine blockierende Warteschlange. Prioritätswarteschlange. 30

31 Collection API Classes II Assoziativspeicher (Map) Schlange (Queue) HashMap TreeMap LinkedHashMap WeakHashMap LinkedList ArrayBlockingQueue PriorityQueue Implementiert einen assoziativen Speicher durch ein Hash-Verfahren. Exemplare dieser Klasse halten ihre Elemente in einem Binärbaum sortiert; implementiert NavigableMap. Ein schneller Assoziativspeicher, der sich parallel auch die Reihenfolge der eingefügten Elemente merkt. Verwaltet Elemente mit schwachen Referenzen, sodass die Laufzeitumgebung bei Speicherknappheit Elemente entfernen kann. Die verkettete Liste implementiert Queue und auch Deque. Eine blockierende Warteschlange. Prioritätswarteschlange. 31

32 Collection API Classes II Assoziativspeicher (Map) Schlange (Queue) HashMap TreeMap LinkedHashMap WeakHashMap LinkedList ArrayBlockingQueue PriorityQueue Implementiert einen assoziativen Speicher durch ein Hash-Verfahren. Exemplare dieser Klasse halten ihre Elemente in einem Binärbaum sortiert; implementiert NavigableMap. Ein schneller Assoziativspeicher, der sich parallel auch die Reihenfolge der eingefügten Elemente merkt. Verwaltet Elemente mit schwachen Referenzen, sodass die Laufzeitumgebung bei Speicherknappheit Elemente entfernen kann. Die verkettete Liste implementiert Queue und auch Deque. Eine blockierende Warteschlange. Prioritätswarteschlange. 32

33 Collection API Classes II Assoziativspeicher (Map) Schlange (Queue) HashMap TreeMap LinkedHashMap WeakHashMap LinkedList ArrayBlockingQueue PriorityQueue Implementiert einen assoziativen Speicher durch ein Hash-Verfahren. Exemplare dieser Klasse halten ihre Elemente in einem Binärbaum sortiert; implementiert NavigableMap. Ein schneller Assoziativspeicher, der sich parallel auch die Reihenfolge der eingefügten Elemente merkt. Verwaltet Elemente mit schwachen Referenzen, sodass die Laufzeitumgebung bei Speicherknappheit Elemente entfernen kann. Die verkettete Liste implementiert Queue und auch Deque. Eine blockierende Warteschlange. Prioritätswarteschlange. 33

34 Collection API Classes II Assoziativspeicher (Map) Schlange (Queue) HashMap TreeMap LinkedHashMap WeakHashMap LinkedList ArrayBlockingQueue PriorityQueue Implementiert einen assoziativen Speicher durch ein Hash-Verfahren. Exemplare dieser Klasse halten ihre Elemente in einem Binärbaum sortiert; implementiert NavigableMap. Ein schneller Assoziativspeicher, der sich parallel auch die Reihenfolge der eingefügten Elemente merkt. Verwaltet Elemente mit schwachen Referenzen, sodass die Laufzeitumgebung bei Speicherknappheit Elemente entfernen kann. Die verkettete Liste implementiert Queue und auch Deque. Eine blockierende Warteschlange. Prioritätswarteschlange. 34

35 Synchronisiert? 35

36 Interfaces & Implementierungen (General-Purpose) Interface Implementierung Array List Tree Hastable Hashtable + LinkedList List ArrayList LinkedList Set TreeSet HashSet LinkedHashSet Map TreeMap HashMap LinkedHashMap Queue LinkedList 36

37 Interfaces & Implementierungen (General-Purpose) Implementierung Vorteile / schnell Nachteile / langsam Anmerkungen ArrayList Lesen [O(1)] Löschen, Einfügen [O(n)] Einfach zu implementieren LinkedList Einfügen, Löschen [O(1)] Lesen [O(n)] Einfach zu implementieren TreeSet Standard-Operationen [O(log n)] TreeMap Standard-Operationen [O(log n)] HashSet Standard-Operationen [O(1)] Keine garantierte Ordnung, dyn. Erweiterung Assoziativ HashMap Standard-Operationen [O(1)] Assoziativ Linked Iterierung über Einfüge- Reihenfolge 37

38 Wie bitte? 38

39 Hashing Balanced Trees 39

40 Legacy Implementations Vector Hashtable 40

41 Legacy Implementations Vector Hashtable Altlasten 41

42 Special Purpose Implementations WeakHashMap IdentityHashMap 42

43 Special Purpose Implementations WeakHashMap (Wenn keine Referenz auf Value: Garbage Collection) IdentityHashMap (Kann enthalten: Mehrere Objekte die equal, aber nicht == sind.) Spezielle Zwecke 43

44 Utility-Klasse Collections Ausschließlich statische Methoden Collections.sort(List<T> list) // Sortieren Collections.shuffle(List<?> list) // Mischen Collectins.binarySearch(List<? extends Comparable<? super T>> list, T key) // Binaere Suche benoetigt Sortierung Collections.reverse(List<T> list) // Umkehren Collections.swap(List<?> list, int i, int j) // Tauschen Collections.frequency(Collection<?> c, Object o) // Zaehlen Collections.disjoint(Collection<?> c1, Collection<?> c2) // Schnittmenge Collections.min(Collection<?> coll), Collectins.max(Collection<?> coll) // Extrema Collections.replaceAll(List<T> list, T oldval, T newval) // Ersetzen 44

45 Utility-Klasse Arrays Ausschließlich statische Methoden Arrays.sort(T[] a, Comparator <? super T> c) // Sortierung mittels Comparator Arrays.asList(T... a); // Konvertierung in Liste

46 Beispiel Threads 46

47 Zusammenfassung 47

48 Fragen 48

49 Quellen Abbildungen Internetquellen: Verfügbarkeit geprüft am um 15:45 Uhr 49

50 Vielen Dank für Ihre Aufmerksamkeit. 50

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

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

Grundlagen der Informatik Generische Klassen

Grundlagen der Informatik Generische Klassen Grundlagen der Informatik Generische Klassen Generische Klassen, das Java-Collection-Framework und mehr Generische Programmierung Beobachtung: In vielen Problemstellungen hängt der grundsätzliche Aufbau

Mehr

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

Java Einführung Collections

Java Einführung Collections Java Einführung Collections Inhalt dieser Einheit Behälterklassen, die in der Java API bereitgestellt werden Wiederholung Array Collections (Vector, List, Set) Map 2 Wiederholung Array a[0] a[1] a[2] a[3]...

Mehr

Java 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

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

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

Datenstrukturen in Java

Datenstrukturen in Java Datenstrukturen in Java SEP 350 Datenstrukturen Datenstrukturen ermöglichen Verwaltung von / Zugriff auf Daten (hier: Objekte) Datenstrukturen unterscheiden sich duch Funktionalität Implementierung modulares

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

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

Java Generics & Collections

Java 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

Mehr

Vorlesung Programmieren

Vorlesung 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

Mehr

Java Collection Framework

Java Collection Framework Java Collection Framework Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete

Mehr

6. Interfaces Grundlagen der Programmierung 1 (Java)

6. Interfaces Grundlagen der Programmierung 1 (Java) 6. Interfaces Grundlagen der Programmierung 1 (Java) Fachhochschule Darmstadt Haardtring 100 D-64295 Darmstadt Prof. Dr. Bernhard Humm FH Darmstadt, 22. November 2005 Einordnung im Kontext der Vorlesung

Mehr

Rückblick: Inf A - Algorithmen. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 07: Collections 1. Inhalt.

Rückblick: Inf A - Algorithmen. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 07: Collections 1. Inhalt. Universität Osnabrück 1 Rückblick: Inf A - Algorithmen 3 - Objektorientierte Programmierung in Java Vorlesung 07: Collections 1 SS 2006 Prof. Dr. F.M. Thiesing, FH Osnabrück Abstrakte Datentypen Liste

Mehr

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

Mehr

Vorlesung 09: Mengen. Peter Thiemann SS 2010

Vorlesung 09: Mengen. Peter Thiemann SS 2010 Vorlesung 09: Mengen Peter Thiemann Universität Freiburg, Germany SS 2010 Peter Thiemann (Univ. Freiburg) JAVA 1 / 43 Inhalt Mengen HashSet LinkedHashSet CopyOnWriteArraySet EnumSet SortedSet NavigableSet

Mehr

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

Verkettete Listen. Implementierung von einfach verketteten Listen. Implementierung von doppelt verketteten Listen Verkettete Listen Verwendung von Listen in Java Das Prinzip des Iterators Implementierung von einfach verketteten Listen Implementierung von doppelt verketteten Listen Informatik II: Objektorientierte

Mehr

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

Vorlesung 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

Mehr

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.

Mehr

CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik)

CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik) CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik) Klassenbibliothek Kollektionen Anforderungen der Kollektionen an ihre Elemente Iteratoren Seite 1 Klassenbibliothek Seite 2 Java

Mehr

Bäume. Text. Prof. Dr. Margarita Esponda SS 2012 O4 O5 O6 O ALP2-Vorlesung, M. Esponda

Bäume. Text. Prof. Dr. Margarita Esponda SS 2012 O4 O5 O6 O ALP2-Vorlesung, M. Esponda Bäume O1 O2 Text O3 O4 O5 O6 O7 Prof. Dr. Margarita Esponda SS 2012 22. ALP2-Vorlesung, M. Esponda Inhalt 1. Einführung 2. Warum Bäume? 3. Listen und Arrays vs. Bäume 4. Einfach verkettete binäre Suchbäume

Mehr

Schnittstellen implementieren am Beispiel Suchbaum

Schnittstellen 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

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Zusatzaufgaben Lösungsvorschlag Objektorientierte Programmierung Lösung 22 (Java und UML-Klassendiagramm)

Mehr

Studentische Lösung zum Übungsblatt Nr. 7

Studentische Lösung zum Übungsblatt Nr. 7 Studentische Lösung zum Übungsblatt Nr. 7 Aufgabe 1) Dynamische Warteschlange public class UltimateOrderQueue private Order[] inhalt; private int hinten; // zeigt auf erstes freies Element private int

Mehr

Vom objektorientierten Entwurf zur Implementierung in Java. 2. Dezember 2014

Vom 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

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Binärbaum Suchbaum Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 356 Datenstruktur Binärbaum Strukturrepräsentation des mathematischen Konzepts Binärbaum

Mehr

11 Grundlegende Datenstrukturen

11 Grundlegende Datenstrukturen 11.1 Einführung Datenstrukturen 11.2 Motivation: Kollektionen 11.3 Stack 11.4 Listen 11.5 Kollektionen in Java 11.6 Parametrisierbare Datenstrukturen in Java 188 Teil XI Grundlegende Datenstrukturen 11

Mehr

7. Kapitel COLLECTIONS. Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm

7. Kapitel COLLECTIONS. Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm 7. Kapitel COLLECTIONS Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm Übersicht 1 1. Programmstrukturierung mit Paketen (packages) 2. Vererbung 3. Abstrakte Klassen und Interfaces 4. Ausnahmebehandlung

Mehr

Informatik 11 Kapitel 2 - Rekursive Datenstrukturen

Informatik 11 Kapitel 2 - Rekursive Datenstrukturen Fachschaft Informatik Informatik 11 Kapitel 2 - Rekursive Datenstrukturen Michael Steinhuber König-Karlmann-Gymnasium Altötting 15. Januar 2016 Folie 1/77 Inhaltsverzeichnis I 1 Datenstruktur Schlange

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 13. Bäume. Bäume

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 13. Bäume. Bäume 1 Kapitel 13 Ziele 2 Den Begriff des Baums in der Informatik kennenlernen als verkettete Datenstruktur repräsentieren können Rekursive Funktionen auf n verstehen und schreiben können Verschiedene Möglichkeiten

Mehr

Tutorium zur Vorlesung Programmieren

Tutorium zur Vorlesung Programmieren Tutorium zur Vorlesung Programmieren 8. Tutorium Joshua Gleitze 19. Dezember 2016 IPD Koziolek Beispiellösung Beispiellösung für das 3. Übungsblatt, inklusive Tests: joshuagleitze.de/tutorien/programmieren1617/code/beispiellösung3

Mehr

Kapitel 9. Inner Classes. 9.1 Wiederholung: Iteratoren. Ausführen einer Operation auf allen Elementen einer Containerklasse

Kapitel 9. Inner Classes. 9.1 Wiederholung: Iteratoren. Ausführen einer Operation auf allen Elementen einer Containerklasse Kapitel 9 Inner Classes 9.1 Wiederholung: Iteratoren Ausführen einer Operation auf allen Elementen einer Containerklasse (zb Liste, Baum,...) vgl. map/f old in der funktionalen Programmierung. Aber: higher-order

Mehr

Klausur zur Veranstaltung Programmierung (fortgeschrittene Konzepte)

Klausur zur Veranstaltung Programmierung (fortgeschrittene Konzepte) Klausur zur Veranstaltung Programmierung (fortgeschrittene Konzepte) Bearbeitungszeit: 100 Minuten (14:15-15:55) Gesamtpunktzahl: 80 Punkte + 30 Zusatzpunkte Die Punktzahlen sind in etwa so bemessen, dass

Mehr

2. Programmieren gegen Schnittstellen Advanced Programming Techniques

2. Programmieren gegen Schnittstellen Advanced Programming Techniques 2. Programmieren gegen Schnittstellen Advanced Programming Techniques Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt Sommersemester 2011 1 Einordnung in den gesamten Kurs 2 1. Einführung 2.

Mehr

Einführung in die Programmierung

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

Mehr

Kapitel 3: Datentyp Liste

Kapitel 3: Datentyp Liste Kapitel 3: Datentyp Liste! Einleitung! Listen-Interface! Liste als Feld: ArrayList! Einfach verkettete Listen! Hilfskopfknotentechnik! Liste als einfach verkettete Liste: LinkedList! Doppelt verkettete

Mehr

Bäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume.

Bäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume. Universität Osnabrück 1 Bäume 3 - Objektorientierte Programmierung in Java Vorlesung 10: Collections 4 Einführung Bäume sind verallgemeinerte Listenstrukturen Lineare Liste Jedes Element hat höchstens

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 11 Dynamische Verwaltung großer Datenmengen... 11-2 11.1 Einige spezielle Klassen des Paketes java.lang.*... 11-2 11.1.1 Klasse Throwable, Exception und Error... 11-2 11.1.2 Klasse Object... 11-7

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Übungsblatt 5 Lösungsvorschlag Objektorientierte Programmierung 22. 05. 2006 Lösung 9 (SMS-Eingabe am

Mehr

Advanced Programming in C

Advanced Programming in C Advanced Programming in C Pointer und Listen Institut für Numerische Simulation Rheinische Friedrich-Wilhelms-Universität Bonn Oktober 2013 Überblick 1 Variablen vs. Pointer - Statischer und dynamischer

Mehr

Einführung in die STL anhand eines ausgewählten Beispiels

Einführung in die STL anhand eines ausgewählten Beispiels Einführung in die STL anhand eines ausgewählten Beispiels Frank M. Thiesing http://home.t-online.de/home/ frank.thiesing/stl/stl-folien.pdf Inhalt Überblick über die C++ STL Container Iteratoren Algorithmen

Mehr

Aufgabenblatt Nr. 5 Generizität und TicTacToe

Aufgabenblatt Nr. 5 Generizität und TicTacToe Aufgabenblatt Nr. 5 Generizität und TicTacToe 1 Generische Sortier-Methode 1.1 Aufgabe: Entwickeln einer generischen Sortiermethode für Objekte mit der Schnittstelle Comparable Ihnen ist aus der Vorlesung

Mehr

HTTP://WWW.WIKIPAINTINGS.ORG/EN/FRIEDENSREICH-HUNDERTWASSER/YOU-ARE-A-GUEST-OF-NATURE-BEHAVE Abstrakte Datentypen.

HTTP://WWW.WIKIPAINTINGS.ORG/EN/FRIEDENSREICH-HUNDERTWASSER/YOU-ARE-A-GUEST-OF-NATURE-BEHAVE Abstrakte Datentypen. HTTP://WWW.WIKIPAINTINGS.ORG/EN/FRIEDENSREICH-HUNDERTWASSER/YOU-ARE-A-GUEST-OF-NATURE-BEHAVE Abstrakte Datentypen OOPM, Ralf Lämmel (C) Ralf Lämmel, OOPM, Universität Koblenz-Landau 562 Motivation abstrakter

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Tafelübung 04 Referenzen, Overloading, Klassen(hierarchien) Clemens Lang T2 18. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/13 Organisatorisches Nächster Übungstermin

Mehr

Einführung in die STL

Einführung in die STL 1/29 in die STL Florian Adamsky, B. Sc. (PhD cand.) florian.adamsky@iem.thm.de http://florian.adamsky.it/ cbd Softwareentwicklung im WS 2014/15 2/29 Outline 1 3/29 Inhaltsverzeichnis 1 4/29 Typisierung

Mehr

Fortgeschrittene Programmiertechnik Klausur SS 2015 Angewandte Informatik Bachelor

Fortgeschrittene Programmiertechnik Klausur SS 2015 Angewandte Informatik Bachelor Fortgeschrittene Programmiertechnik Klausur SS 2015 Angewandte Informatik Bachelor Name Matrikelnummer Aufgabe Punkte Aufgabe Punkte Zwischensumme 1 6 2 8 3 12 4 18 5 20 64 6 9 7 17 8 18 9 12 Summe 120

Mehr

1. Typen und Literale (6 Punkte) 2. Zuweisungen (6 = Punkte)

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

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren 7. Listen und Abstrakte Datentypen Prof. Dr. Ralf H. Reussner Version 1.0 LEHRSTUHL FÜR SOFTWARE-DESIGN UND QUALITÄT (SDQ) INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen und Datenstrukturen (für ET/IT) Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2016 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute 1 Einführung 2 Grundlagen von Algorithmen

Mehr

Einführung Elementare Datenstrukturen. Der Konstruktor muß den Listenkopf head erzeugen. Der Vorgänger und Nachfolger von head ist head selbst.

Einführung Elementare Datenstrukturen. Der Konstruktor muß den Listenkopf head erzeugen. Der Vorgänger und Nachfolger von head ist head selbst. Einführung Elementare Datenstrukturen (Folie 38, Seite 23 im Skript) Der Konstruktor muß den Listenkopf head erzeugen. Der Vorgänger und Nachfolger von head ist head selbst. Einführung Elementare Datenstrukturen

Mehr

Java-Implementierung der Priority-Queue und des Huffman-Algorithmus Effiziente Algorithmen SS12 Übung 4 Aufgabe 5 Johannes Hein

Java-Implementierung der Priority-Queue und des Huffman-Algorithmus Effiziente Algorithmen SS12 Übung 4 Aufgabe 5 Johannes Hein Übersicht Beschreibung der Datenstruktur Seite 1 Schnittstelle PriorityQueue Seite 2 Klasse PriorityQueueException Seite 3 Klasse Data Seite 4 Klasse PriorityQueueImpl Seite 5 Klasse Huffman Seite 8 Aufbau

Mehr

7. Schnittstellen Grundlagen zu Schnittstellen. 7. Schnittstellen

7. Schnittstellen Grundlagen zu Schnittstellen. 7. Schnittstellen 7. Schnittstellen Grundlagen zu Schnittstellen 7. Schnittstellen Eine Schnittstelle (Interface) ist eine Spezifikation eines Typs in Form eines Typnamens und einer Menge von Methoden, die keine Implementierungen

Mehr

Java. Wir verwenden oft Java für Datenstrukturen und Algorithmen. Die Vorlesung ist aber von der Programmiersprache unabhängig.

Java. Wir verwenden oft Java für Datenstrukturen und Algorithmen. Die Vorlesung ist aber von der Programmiersprache unabhängig. Komplexität von Algorithmen (Folie 34, Seite 18 im Skript) Wir verwenden oft für Datenstrukturen und Algorithmen. Die Vorlesung ist aber von der Programmiersprache unabhängig. Lernziel sind die einzelnen

Mehr

Versuchsziele Kenntnisse in der Anwendung von: Sortieren mit Klassen Benutzung von generischen Klassen o Definition o Sortierung.

Versuchsziele Kenntnisse in der Anwendung von: Sortieren mit Klassen Benutzung von generischen Klassen o Definition o Sortierung. Hochschule Harz Programmierung1 Tutorial 11: FB Automatisierung und Informatik Dipl.-Inf. Dipl.-Ing. (FH) M. Wilhelm Programmierung 1 für MI / WI Thema: Sortieren und generische Klassen Versuchsziele Kenntnisse

Mehr

Java-Schulung Grundlagen

Java-Schulung Grundlagen Java-Schulung Grundlagen Java 2 Standard Edition JDK 5 / 6 31.05.2008 Marcel Wieczorek 1 Themenübersicht Basiswissen Objektorientierung Datentypen Fehlerbehandlung Sonstiges Einführung Klassen, Strings

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Sie kennen und üben die Vorgehensweise, die bei algorithmisch komplexen Problemen angewendet wird. Sie kennen die zentralen Datenstrukturen der Informatik und wie sie in

Mehr

2. Java Schnellkurs Advanced Programming Techniques. Wintersemester 2009/10 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik

2. Java Schnellkurs Advanced Programming Techniques. Wintersemester 2009/10 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik 2. Java Schnellkurs Advanced Programming Techniques Wintersemester 2009/10 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik 1 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Advanced

Mehr

Inhalte Informatik. I1 Grundprinzip des objektorientierten Modellierens I3 Modellieren von Netzwerkanwendungen

Inhalte Informatik. I1 Grundprinzip des objektorientierten Modellierens I3 Modellieren von Netzwerkanwendungen Inhalte Informatik I1 Grundprinzip des objektorientierten Modellierens I3 Modellieren von Netzwerkanwendungen II.0 Grundlegende Programmstrukturen und Algorithmen Sortier- und Suchalgorithmen auf Arrays

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 14: Generics Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda Generische Klassen (Generics) Motivation Java Typ-Prüfung Warum also Generics? Generische

Mehr

U08 Entwurfsmuster (II)

U08 Entwurfsmuster (II) U08 Entwurfsmuster (II) Inhalt der Übung Diskussion und Implementierung von Entwurfsmustern Übungsaufgaben Aufgabe 1 (Queue) Gegeben ist das folgende Analysemodell einer Warteschlange (Queue): Eine Warteschlange

Mehr

Java Programmierung Grundlagen

Java Programmierung Grundlagen Seminarunterlage Version: 4.11 Version 4.11 vom 22. Dezember 2015 Dieses Dokument wird durch die veröffentlicht.. Alle Rechte vorbehalten. Alle Produkt- und Dienstleistungs-Bezeichnungen sind Warenzeichen

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

Java I Vorlesung 6 Referenz-Datentypen

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

Mehr

Generische Typen in Java 1.5. Die Erweiterung der Java Language Specification

Generische Typen in Java 1.5. Die Erweiterung der Java Language Specification Generische Typen in Java 1.5 - Seminarvortrag 1/26 Generische Typen in Java 1.5 Die Erweiterung der Java Language Specification Seminarvortrag von Heiko Minning, mi3795 bei Prof. Dr. Uwe Schmidt, FH-Wedel

Mehr

Übung 13: Priority Queues (Vorrangwarteschlangen 1 )

Übung 13: Priority Queues (Vorrangwarteschlangen 1 ) Übung 13: Priority Queues (Vorrangwarteschlangen 1 ) Definition Eine Priority Queue ist eine Datenstruktur zur Speicherung einer Menge von Elementen, für die eine Halbordnung (Prioritätssteuerung) definiert

Mehr

Selbststudium OOP5 21.10.2011 Programmieren 1 - H1103 Felix Rohrer

Selbststudium OOP5 21.10.2011 Programmieren 1 - H1103 Felix Rohrer Kapitel 4.1 bis 4.3 1. zu bearbeitende Aufgaben: 4.1 4.1: done 2. Was verstehen Sie unter einem "Java-Package"? Erweiterungen verschiedener Klassen welche in Java benutzt werden können. 3. Sie möchten

Mehr

FAKULTÄT FÜR INFORMATIK

FAKULTÄT FÜR INFORMATIK TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen WS 2007/2008 Praktikum Grundlagen der Programmierung Lösungsvorschläge zu Blatt 10 F. Forster,

Mehr

Software Engineering Klassendiagramme Assoziationen

Software Engineering Klassendiagramme Assoziationen Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen

Mehr

Java Einführung Abstrakte Klassen und Interfaces

Java Einführung Abstrakte Klassen und Interfaces Java Einführung Abstrakte Klassen und Interfaces Interface Interface bieten in Java ist die Möglichkeit, einheitliche Schnittstelle für Klassen zu definieren, die später oder/und durch andere Programmierer

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 10 (3.6.2014) Binäre Suchbäume I Algorithmen und Komplexität Zusätzliche Dictionary Operationen Dictionary: Zusätzliche mögliche Operationen:

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Dateien lesen und schreiben 2 Übersicht der heutigen Inhalte File Streams try-with-resources Properties csv-dateien 3 Klasse File Die Klasse java.io.file bietet Unterstützung im Umgang

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 08: Dynamische Arrays Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Arrays anpassen Übungsaufgabe von letzter Stunde Array-Elemente Einfügen

Mehr

5.14 Generics. Xiaoyi Jiang Informatik I Grundlagen der Programmierung

5.14 Generics. Xiaoyi Jiang Informatik I Grundlagen der Programmierung Motivation für Generics: Containertypen speichern eine Anzahl von Elementen anderer Typen Wie definiert man die Containerklasse ArrayList? In der Definition könnte man als Elementtyp Object angeben maximale

Mehr

- k Maximalwerte aus Menge mit n >> k Elementen (Rangfolgebestimmung von Suchmaschinen!) Die typische Operationen:

- k Maximalwerte aus Menge mit n >> k Elementen (Rangfolgebestimmung von Suchmaschinen!) Die typische Operationen: 6 Partiell geordnete binäre Bäume: Heap (Haufen) Motivation für manchen Anwendungen nur partielle Ordnung der Elemente statt vollständiger nötig, z.b. - Prioritätsschlange: nur das minimale (oder maximale)

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 2010 Praktikum: Grundlagen der Programmierung Lösungsblatt 7 Prof. R. Westermann, A. Lehmann, R.

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

Mehr

Theorie zu Übung 8 Implementierung in Java

Theorie zu Übung 8 Implementierung in Java Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Theorie zu Übung 8 Implementierung in Java Klasse in Java Die Klasse wird durch das class-konzept

Mehr

Geordnete Binärbäume

Geordnete Binärbäume Geordnete Binärbäume Prof. Dr. Martin Wirsing in Zusammenarbeit mit Gilbert Beyer und Christian Kroiß http://www.pst.ifi.lmu.de/lehre/wise-09-10/infoeinf/ WS 09/10 Einführung in die Informatik: Programmierung

Mehr

Ein Algorithmus heißt rekursiv, wenn er sich selbst aufruft. Meist werden nur einzelne Module eines Gesamtalgorithmus rekursiv verwendet.

Ein Algorithmus heißt rekursiv, wenn er sich selbst aufruft. Meist werden nur einzelne Module eines Gesamtalgorithmus rekursiv verwendet. 3.6 Rekursion Ein Algorithmus heißt rekursiv, wenn er sich selbst aufruft. Meist werden nur einzelne Module eines Gesamtalgorithmus rekursiv verwendet. Klassisches Beispiel: Berechnung von n! (Fakultät

Mehr

Handbuch für die Erweiterbarkeit

Handbuch für die Erweiterbarkeit Handbuch für die Erweiterbarkeit Inhalt Pakete für die Erweiterbarkeit... 2 Actions... 2 Items... 2 Itemset... 2 Die UseCaseNewAction... 3 Eigene Shapes... 4 Der Shape Container... 5 User Objects... 6

Mehr

Institut für Programmierung und Reaktive Systeme 26. April 2013. Programmieren II. 10. Übungsblatt

Institut für Programmierung und Reaktive Systeme 26. April 2013. Programmieren II. 10. Übungsblatt Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 26. April 2013 Programmieren II 10. Übungsblatt Hinweis: Insgesamt werden in diesem Semester fünf

Mehr

Gebundene Typparameter

Gebundene Typparameter Gebundene Typparameter interface StringHashable { String hashcode(); class StringHashMap { public void put (Key k, Value v) { String hash = k.hashcode();...... Objektorientierte

Mehr

1 Polymorphie (Vielgestaltigkeit)

1 Polymorphie (Vielgestaltigkeit) 1 Polymorphie (Vielgestaltigkeit) Problem: Unsere Datenstrukturen List, Stack und Queue können einzig und allein int-werte aufnehmen. Wollen wir String-Objekte, andere Arten von Zahlen oder andere Objekttypen

Mehr

(06 - Anwendungen von Stapeln und Schlangen)

(06 - Anwendungen von Stapeln und Schlangen) Vorlesung Algorithmen und Datenstrukturen (06 - Anwendungen von Stapeln und Schlangen) Prof. Dr. Susanne Albers Lineare Listen (1) Lineare Anordnung von Elementen eines Grundtyps (elementarer Datentyp

Mehr

A(T1) A(T2) A(T1) A(T2)

A(T1) A(T2) A(T1) A(T2) Kovarianz und Kontravarianz in Java Abstract In diesem Artikel werden die Java-Regeln für Kovarianz und Kontravarianz zusammengefasst. Hierzu wird Typkompatibilität definiert und die Fälle untersucht,

Mehr

Lösungsvorschläge. zu den Aufgaben im Kapitel 4

Lösungsvorschläge. zu den Aufgaben im Kapitel 4 Lösungsvorschläge zu den Aufgaben im Kapitel 4 Aufgabe 4.1: Der KNP-Algorithmus kann verbessert werden, wenn in der Funktion nexttabelle die Zuweisung next[tabindex] = ruecksprung; auf die etwas differenziertere

Mehr

Einfach und mehrfach verkettete Listen

Einfach und mehrfach verkettete Listen Einfach und mehrfach verkettete Listen Sie haben ein intuitives Verständnis vom Landau gross O-Begriff Sie wissen, was die einfach und mehrfach verkettete Listen sind Sie kennen die wichtigsten Operationen

Mehr

Objektorientierte Programmierung mit C++ Vector und List

Objektorientierte Programmierung mit C++ Vector und List Vector und List Ziel, Inhalt Wir lernen die Klassen vector und list aus der Standard-C++ Library kennen und anwenden. In einer Übung wenden wir diese Klassen an um einen Medienshop (CD s und Bücher) zu

Mehr

Allgemeine Informatik II SS :30-13:30 Uhr

Allgemeine Informatik II SS :30-13:30 Uhr TU Darmstadt FB Informatik Prof. J. Fürnkranz Vordiplomsklausur - Lösungsvorschlag Allgemeine Informatik II SS 2005 15.09.2005 11:30-13:30 Uhr Hinweise: Als Hilfsmittel ist nur ein schwarzer oder blauer

Mehr

Inhaltsverzeichnis. Praktikum Algoritmen und Datenstrukturen WS2004/2005 Paul Litzbarski Stefan Nottorf. Druckmanager allgemein 2.

Inhaltsverzeichnis. Praktikum Algoritmen und Datenstrukturen WS2004/2005 Paul Litzbarski Stefan Nottorf. Druckmanager allgemein 2. Praktikum Algoritmen und Datenstrukturen WS2004/2005 Paul Litzbarski Stefan Nottorf Inhaltsverzeichnis Druckmanager allgemein 2 Design 2 Druckauftrag 3 Liste 4 ListenEintrag 6 GUI 7 1 Druckmanager : allgemein

Mehr

WP Praktikum: Fortgeschrittene Programmierung mit Java

WP Praktikum: Fortgeschrittene Programmierung mit Java Hochschule für Angewandte Wissenschaften Hamburg Hamburg University of Applied Sciences Department Informations- und Elektrotechnik Prof. Dr. Thomas Klinker WP Praktikum: Fortgeschrittene Programmierung

Mehr

368 4 Algorithmen und Datenstrukturen

368 4 Algorithmen und Datenstrukturen Kap04.fm Seite 368 Dienstag, 7. September 2010 1:51 13 368 4 Algorithmen und Datenstrukturen Java-Klassen Die ist die Klasse Object, ein Pfeil von Klasse A nach Klasse B bedeutet Bextends A, d.h. B ist

Mehr

Große Übung Praktische Informatik 1

Große Übung Praktische Informatik 1 Große Übung Praktische Informatik 1 2005-12-08 fuessler@informatik.uni-mannheim.de http://www.informatik.uni-mannheim.de/pi4/people/fuessler 1: Announcements / Orga Weihnachtsklausur zählt als Übungsblatt,

Mehr

Generische Datenstrukturen

Generische Datenstrukturen Generische Datenstrukturen Prof. Dr. rer. nat. habil. Uwe Aßmann Lehrstuhl Softwaretechnologie Fakultät für Informatik TU Dresden Softwaretechnologie, Prof. Uwe Aßmann 1 2 Trends in der Softwareentwicklung

Mehr

Theoretische Informatik 1 WS 2007/2008. Prof. Dr. Rainer Lütticke

Theoretische Informatik 1 WS 2007/2008. Prof. Dr. Rainer Lütticke Theoretische Informatik 1 WS 2007/2008 Prof. Dr. Rainer Lütticke Inhalt der Vorlesung Grundlagen - Mengen, Relationen, Abbildungen/Funktionen - Datenstrukturen - Aussagenlogik Automatentheorie Formale

Mehr

Bäume, Suchbäume und Hash-Tabellen

Bäume, Suchbäume und Hash-Tabellen Im folgenden Fokus auf Datenstrukturen, welche den assoziativen Zugriff (über einen bestimmten Wert als Suchkriterium) optimieren Bäume: Abbildung bzw. Vorberechnung von Entscheidungen während der Suche

Mehr

Einführung in die Informatik II

Einführung in die Informatik II Einführung in die Informatik II SS 2011 5 Programmierung mit Java Wissensbasierte Systeme / Wissensmanagement Einführung in die Informatik II 1 5 Programmierung mit Java... Lernziele Kennenlernen wichtiger

Mehr

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 3 - Objektorientierung Warum Objektorientierung Daten und Funktionen möglichst eng koppeln und nach außen kapseln Komplexität der Software besser modellieren

Mehr