Programmieren in Java
|
|
- Walther Joachim Burgstaller
- vor 5 Jahren
- Abrufe
Transkript
1 Datenstrukturen
2 2 Wiederholung: Typvariable Analog zu Variablen, die für Daten stehen, stehen Typvariablen für einen bestimmten Typ Typvariablen werden im in der Klassendefinition nach dem Klassennamen angegeben Es können beliebig viele Variablen definiert werden MODIFIKATOREN interface class BEZEICHNER < T1, T2,, T_N > { } public interface Garbage<T> { } Implementiert eine Klasse ein generisches Interface oder erweitert eine generische Klasse, so können die Typparameter weitergereicht werden: public class MyGarbage<T> implements Garbage<T> { } Sobald eine Instanz einer generischen Klasse erzeugt werden soll, muss die Typvariable konkretisiert werden: Garbage<String> mülleimer = new MyGarbage<>();
3 3 Wiederholung: Typvariable Lässt man die Konkretisierung gänzlich weg, so leitet der Compiler Object ab Garbage mülleimer = new MyGarbage(); Garbage<Object> mülleimer = new MyGarbage<>(); Wird ein generischen Interface implementiert oder eine generische Klasse erweitert und keine Typvariable definiert, so muss das Interface oder die Klasse konkretisiert werden public class MyGarbage imoplements Garbage<String> { } Wenn der konkrete Typ einer generischen Variable nicht interessiert, kann diese mit? als sogenannte Wildcard definiert werden Garbage<Garbage<?>> mülleimer; mülleimer = MyGarbage<Garbage<?>>(); mülleimer.add(new MyGarbage<String>()); mülleimer.add(new MyGarbage<Ware>()); Typvariablen können eingeschränkt werden public interface Garbage<T extends Disposable> { }
4 4 Was bisher geschah Bisher wurden zur Gruppierung von Daten immer Arrays genutzt Bis auf die Index-Funktion gibt es allerdings keinerlei logischer Operationen, mit denen der Array manipuliert werden könnte Wenn die zu organisierende Menge dynamisch ist, machen Arrays einem das Leben daher schwer: Arrays sind statisch: Länge einmal festgelegt, nicht mehr änderbar Mal eben ein Element hinzufügen oder entfernen ist aufwändig Zumeist muss der Array-Inhalt kopiert werden Große Arrays großer Kopieraufwand Datentypen, die eine Menge an Daten gruppieren und auf dieser Gruppierung eine gewisse Logik bereitstellen werden Datenstrukturen genannt Datenstrukturen & Algorithmen meist eine eigene Vorlesung!
5 5 Lauf- und Zugriffszeit Wichtige Punkte bei der Auswahl einer Datenstruktur sind Laufzeit: Die Anzahl der Schritte, um ein bestimmtes Element zu finden Zugriffszeit: Schritte, um auf ein bestimmtes Element zuzugreifen Beispiel Array: Zugriffszeit (Voraussetzung: Element ist enthalten): Array liegt aneinander gereiht im Speicher Zugriff: Adresse des 1. Elementes + (Position*Speichergröße(Typ)) Zugriff in einem Schritt (Notation: Ɵ(1), konstante Zugriffszeit ) Laufzeit: Im schlechtesten Fall ist das Element nicht vorhanden Um dies festzustellen muss es mit allen Elementen verglichen werden Zugriff in n-schritten (Ɵ(n), n ist die Anzahl der Elemente, lineare Laufzeit )
6 6 Collection-API Java bietet mit der Collection-API einen Basissatz an Datenstrukturen All diese Strukturen sind dynamisch und damit flexibler als Arrays Jede der Strukturen basiert auf einem der folgenden Interfaces Collection: Interface für Listen bzw. Mengen Map: Interface für eine Gruppe assoziativ angeordneter Elemente Sowohl Collection als auch Map sind generisch, d.h. der Datentyp der Inhalte kann generisch spezifiziert werden: Collection<String> list = new LinkedList<String>(); LinkedList ist eine Implementierung von Collection Diese Kollektion nimmt demnach nur Daten vom Typ String auf
7 7 Das Interface Collection public interface Collection<E> extends Iterable<E> { boolean add(e e); boolean addall(collection<? extends E> c); boolean remove(object o); boolean removeall(collection<?> c); boolean retainall(collection<?> c); boolean contains(object o); boolean containsall(collection<?> c); int size(); boolean isempty(); void clear(); Object[] toarray(); <T> T[] toarray(t[] a); Iterator<E> iterator(); }
8 8 Das Interface Collection Jede Implementierung des Collection-Interfaces unterstützt das Hinzufügen und Entfernen von Elementen (einzeln oder massenhaft) Überprüfen ob gewisse Inhalte vorhanden sind Abfragen der Größe Umwandeln in einen Array Desweiteren erweitert Collection das Interface Iterable Dies schreibt die Methode iterator() vor Alle Klassen, die dieses Interface implementieren können in der foreach-schleife genutzt werden: Collection<String> list = new LinkedList<>(); list.add("..."); list.add("..."); for (String element : list) System.out.println(element);
9 9 Listen Listen sind Collections mit einer Ordnungshierarchie Von allen Datenstrukturen am ähnlichsten zu Arrays Auf einen bestimmten Inhalt innerhalb der Liste kann über seinen Index (~ Position) zugegriffen werden List<String> list = new LinkedList<>(); list.set(0, "..."); // Füllen String fragment = list.get(3); String[] array = new String[ ]; array[0] = "..."; // Füllen String fragment = array[3]; List ist ein Interface mit verschiedenen bereits vorhandenen Implementierungen: ArrayList: das dynamische Pendant zum Array Vector: siehe ArrayList LinkedList: Die Elemente sind miteinander verkettet (nächste Folie) Sowohl ArrayList als auch Vector greifen intern auf Arrays zurück Die Unterschiede liegen in der Thread-Sicherheit (Vector) und der Art und Weise wie der interne Array verwaltet wird
10 10 LinkedList Jedes Element in der LinkedList wird in einem Node gespeichert Jeder Node kennt seinen Vorgänger und seinen Nachfolger Der erste und letzte Node sind in der Liste verlinkt Node first last data
11 11 Lauf- und Zugriffzeit (ArrayList, LinkedList) ArrayList/Vector: Intern werden die Elemente in einem Array gespeichert Zugriffszeit: Ɵ(1) Laufzeit: Ɵ(n) LinkedList Elemente sind verkettet Kein direkter Zugriff Um das n-te Element zu erreichen, muss die Kette vom ersten bis zum n-1 Element durchlaufen werden Zugriffszeit: Ɵ(n) Im schlechtesten Fall ist ein gesuchtes Element nicht vorhanden Es muss die gesamte Kette durchlaufen werden, um dies festzustellen Laufzeit: Ɵ(n)
12 12 LinkedList Suche eines Elements in einer LinkedList ist vergleichsweise langsam Das Löschen und Hinzufügen jedoch ist schneller als bei ArrayList/Vector Da jeder Node seinen Vorgänger und Nachfolger kennt, lassen sich beide Operationen durch umbiegen der Verlinkung in einem Schritt durchführen ArrayList/Vector müssen die richtige Stelle zum Löschen finden, den Array unter Umständen kopieren und neufüllen Löschen first last Hinzufügen first last
13 13 Stack Ein Stack ist bereits im Kapitel Speichermanagement aufgetaucht Der Stack-Speicher baute sich Frame für Frame auf einer Seite des Speichers auf Nach jedem Methodenende wird der Stack auf genau der Seite wieder abgebaut Die Stack-Datenstruktur ist analog aufgebaut Auch LIFO (Last-In-Firs t-out) genannt boolean empty(); E peek(); E pop(); E push(e o); int search(object o); peek() pop() push(object) Zugriff: Ɵ(1) (es ist immer nur das letzte Element zugreifbar!) Laufzeit: Ɵ(n) (es müssen alle Elemente verglichen werden)
14 14 Queue Ähnlich dem Stack Eine Queue (Warteschlange) wird hinten auf- und vorne abgebaut Daher: FIFO (First-In-First-Out) E element(); boolean offer(e o); E peek(); E poll(); E remove(); element()/peek() offer(object) poll()/remove() Zugriff: Ɵ(1), Laufzeit: Ɵ(n) (beides, analog zum Stack)
15 15 Set Spezielle Collection mit der Einschränkung: Jedes Element in der Menge ist eindeutig, d.h. es gibt keine zwei Element e1 und e2 für die gilt e1.equals(e2) == true Sets müssen nicht zwangsläufig geordnet sein Zugriffs- und Laufzeit variieren wie schon bei der Liste je nach Implementierung
16 16 Map Der Datentyp Map wird auch als assoziativer Speicher bezeichnet Jedes Element in der Map ist eindeutig über einen Schlüssel assoziiert Eine Map enthält demnach Schlüssel-Wert Paare Key 1 Value 1 Key 2 Value 2 Key 3 Value 3 Key 4 Value 4 Key n Value n public interface Map<K, V> { int size(); boolean isempty(); boolean containskey(object key); boolean containsvalue(object value); V get(object key); V put(k key, V value); V remove(object key); void putall(map<? extends K,? extends V> map); void clear(); Set<K> keyset(); Collection<V> values(); Set<Map.Entry<K, V>> entryset; }
17 17 HashMap Intern verwaltet als Array Eine Hashfunktion weißt jedem Schlüssel einen eindeutigen Index zu Eingabe der Hashfunktion ist der Hashwert (hashcode()) eines Objektes Schwierigkeit: Hashfunktion sollte injektiv sein, damit nicht zwei verschiedenen Schlüsseln der gleiche Index zugewiesen wird Eine HashMap ist unsortiert In der Regel keine Rückwärtsassoziation zwischen Wert und Schlüssel Zugriffszeit: Schlüssel wird über die Hashfunktion zu Index des internen Arrays Ɵ(1) Laufzeit: Suche nach Schlüssel: Schlüssel Hashfunktion Index Array[Index] Ɵ(1) Suche nach Wert: Ɵ(n)
18 18 TreeMap Schlüssel und Wert in einem Knoten gespeichert (vgl. LinkedList ) Jeder Knoten hat zwei Kindknoten Links: Schlüssel ist kleiner als der eigene Schlüssel Rechts: Schlüssel ist größer als der eigene Schlüssel Neue Elemente werden an den Blattknoten eingefügt (evtl. Umsortieren) Beispiel: Suche nach Pampelmuse H < M Schlüssel Mandarine data Daten T > M Himbeere data Traube data Ananas Kiwi Pampelmuse Zwetschge data data data data Lauf/Zugriffszeit: Ɵ(log(n)) (ohne Beweis)
19 19 Immutable/Hash/Equals Objekte werden als immutable bezeichnet, wenn sie nach ihrer Erzeugung nicht mehr geändert werden können Beispiel: Strings Solange ein Objekt sich nicht ändert, muss seine hashcode-methode immer den gleichen Wert liefern Wenn zwei Objekte unter equals gleich sind, müssen Ihre Hash-Werte übereinstimmen Die equals-methode wird daher häufig in Abhängigkeit zu Attributwerten definiert Hier ist vor allem im Hinblick auf HashMaps und Sets Vorsicht geboten: Da die Eindeutigkeitsforderung auf Basis von equals überprüft wird, sollten Sets nur unveränderbare Werte enthalten In Hashes werden die Werte über den Hash-Wert eines Schlüssel assoziiert, auch hier sollte der Hash-Wert und damit der Schlüssel nicht veränderbar sein
20 20 Iterator Zu Anfang wurde erwähnt, das Collections das Iterable-Interface implementieren So sind Collections für die foreach-schleife einsetzbar Jede Collection bietet mit iterator() allerdings die Möglichkeit direkt auf einen Iterator zuzugreifen: Iterator<String> iterator = list.iterator(); String string; while (iterator.hasnext()) { string = iterator.next(); iterator.remove(); } Vorteil: Die meisten Iterator bieten die Möglichkeit während der Iteration Einträge aus der Collection zu löschen In einer foreach-schleife nicht möglich: ConcurrentModificationException
21 21 Generics/Wildcards Zurück zur Definition des Collection-Interfaces public interface Collection<E> extends Iterable<E> { boolean addall(collection<? extends E> c); } Mit extends konnten generische Datentypen eingeschränkt werden Hier wird extends dazu genutzt, um eine Wildcard einzuschränken Die Methode addall akzeptiert also alle Collections, die mindestens Daten vom Typ E enthalten Aber warum genügt nicht: boolean addall(collection<e> c);
22 22 Generics/Wildcards Angenommen: List<Comparable> list1 = new ArrayList<>(); List<String> list2 = new ArrayList<>(); public static void sort(list<comparable> list) {Collections.sort(list);} Die Signatur von String: public final class String implements Comparable<String>, Es gilt also: String ist vom Typ Comparable Invarianz: List<Comparable> nicht durch List<String> ersetzbar Die sort-methode ist daher auf List<Comparable> eingeschränkt Während diese Einschränkung zu restriktiv ist, würde eine einfache Wildcard nicht garantieren, dass nur Comparable Objekte in der Liste sind Daher besteht die Möglichkeit auch Wildcards einzuschränken: public static void sort(list<? extends Comparable> list) {Collections.sort(list);}
23 23 Generics/Wildcards Angenommen: public static void extract( Comparable data, List<? extends Comparable> src, List<? extends Comparable> dest ) extract soll alle Daten aus src nach dest kopieren, die gleich data sind Der Versuch Daten aus src nach dest zu kopieren, wird zum Compiler-Fehler führen Beispiel: List<String> src = new ArrayList<>(); List<Integer> dest = new ArrayList<>(); String und Integer sind beide vom Typ Comparable Integer ist allerdings nicht vom Typ String Ein String-Objekt kann nicht ein eine Integer-Liste einfügt werden Compiler kann nicht sicherstellen, dass src und dest kompatibel sind
24 24 Generics/Wildcards Mit super können Wildcards nach oben beschränkt werden: public static void extract( Comparable data, List<? extends Comparable> src, List<? super Comparable> dest ) Nach oben heißt: Comparable oder alle Superklassen Der Compiler weiß nun, dass die Typsicherheit auf jeden Fall nicht durchbrochen wird: Objekte aus src sind Comparable und dest enthält maximal Comparable List<String> src = new ArrayList<>(); List<Object> dest = new ArrayList<>(); Faustregel: Zum lesenden Zugriff: extends Zum schreibenden Zugriff: super
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
MehrProgrammieren in Java
Datenstrukturen 2 Was bisher geschah Bisher wurden zur Gruppierung von Daten immer Arrays genutzt Bis auf die Index-Funktion gibt es allerdings keinerlei logischer Operationen, mit denen der Array manipuliert
MehrProgrammieren in Java
Datenstrukturen 2 Was bisher geschah Bisher wurden zur Gruppierung von Daten immer Arrays genutzt Bis auf die Index-Funktion gibt es allerdings keinerlei logischer Operationen, mit denen der Array manipuliert
MehrJAVA KURS COLLECTION
JAVA KURS COLLECTION COLLECTIONS Christa Schneider 2 COLLECTION Enthält als Basis-Interface grundlegende Methoden zur Arbeit mit Collections Methode int size() boolean isempty() boolean contains (Object)
Mehrjava.util. Sebastian Draack Department Informations- und Elektrotechnik Department Informations- und Elektrotechnik JAVA Collection-API
Sebastian java.util.* Draack JAVA Collection-API 1 Collection-API Begriffe Einleitung, Motivation Iterator Comparator Interfaces Abstrakte Klassen Konkrete Klassen Utility-Klassen Beispiele Zusammenfassung
Mehr19 Collections Framework
Collection = Containterklasse, die andere Objekte enthält. Inhalte: Schnittstellen Implementierungen Algorithmen Vorteile: Einheitlicher Zugriff auf Containerobjekte. Abstraktion von den Implementierungsdetails.
Mehr19 Collections Framework
Collection = Containterklasse, die andere Objekte enthält. Inhalte: Schnittstellen Implementierungen Algorithmen Vorteile: Einheitlicher Zugriff auf Containerobjekte. Abstraktion von den Implementierungsdetails.
Mehr12 Collections Framework. Interfaces Maps and Collections. Collection Interface. Überblick. Collection = Containterklasse, die andere Objekte enthält.
Collection = Containterklasse, die andere Objekte enthält. Inhalte: Schnittstellen Implementierungen Algorithmen Interfaces Maps and Collections Iterable Collection Map Vorteile: Set List Queue SortedMap
MehrOCP Java SE 8. Collections
OCP Java SE 8 Collections Collections (Interfaces) Iterable Collection Set List Queue SortedSet Deque Collection List erlaubt Duplikate und null behält die Reihenfolge Set erlaubt keine Duplikate Queue
MehrProgrammiertechnik II
Datentypen in Java Primitive Typen in Java Wertesemantik (keine Referenzsemantik) Vordefinierte Hüllklassen (etwa java.lang.float) Integrale Typen: char, byte, short, int, long Gleitkommatypen: float,
MehrJava Generics & Collections
Praktikum Effizientes Programmieren (Sommersemester 2018) Dennis Reuling 1 / 1 Praktikum Effizientes Programmieren (Sommersemester 2018) Agenda Teil 1 Generics 2 / 1 Praktikum Effizientes Programmieren
MehrProgrammiertechnik II
Programmiertechnik II Datentypen Primitive Typen in Java Wertesemantik (keine Referenzsemantik) Vordefinierte Hüllklassen (etwa java.lang.float) Integrale Typen: char, byte, short, int, long Gleitkommatypen:
MehrProblem: Was ist, wenn der Stapel voll ist? Idee: Erzeuge dynamisch ein grösseres Array und kopiere um. Dynamische Anpassung der Größe
Maximale Größe?! Problem: Was ist, wenn der Stapel voll ist? Idee: Erzeuge dynamisch ein grösseres Array und kopiere um Dynamische Anpassung der Größe Praktische Informatik I, HWS 2009, Kapitel 10 Seite
MehrPropädeutikum Programmierung in der Bioinformatik
Propädeutikum Programmierung in der Bioinformatik Java Collections Thomas Mauermeier 15.01.2019 Ludwig-Maximilians-Universität München Collections? Was ist eine Collection? Container für mehrere Objekte
MehrEinstieg in die Informatik mit Java
1 / 15 Einstieg in die Informatik mit Java Collections Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 15 1 Überblick Collections 2 Hierarchie von Collections 3 Verwendung
MehrKapitel 12: Java Collection Teil II
Kapitel 12: Java Collection Teil II Übersicht Set und TreeSet Map und TreeMap 12-1 In diesem Kapitel Iterable Interface Klasse extends implements Collection Queue List Set Map Deque
MehrKapitel 12: Java Collection Teil II
Kapitel 12: Java Collection Teil II Übersicht Set und TreeSet Map und TreeMap 12-1 In diesem Kapitel Iterable Interface Klasse extends implements Collection Queue List Set Map Deque
MehrJava Collections Framework (JCF)
Algorithmen & Datenstrukturen Bachelor Medieninformatik Fachbereich DCSM FH Wiesbaden University of Applied Sciences Thomas Frenken frenken@informatik.fh-wiesbaden.de Inhaltsverzeichnis 1. Das Java Collections
MehrProgrammiertechnik II
Datentypen in Java Primitive Typen in Java Wertesemantik (keine Referenzsemantik) Vordefinierte Hüllklassen (etwa java.lang.float) Integrale Typen: char, byte, short, int, long Gleitkommatypen: float,
MehrRechtsbelehrung. Java und OOP Das Buch Christian Silberbauer 144
Rechtsbelehrung Dieser Foliensatz ist urheberrechtlich geschützt. Änderungen an den Folien sind untersagt. Ausschließlich eine nicht-kommerzielle Nutzung ist kostenfrei. Andernfalls wird eine Gebühr fällig.
MehrTeil V. Generics und Kollektionen in Java
Teil V Generics und Überblick 1 Parametrisierbare Datenstrukturen in Java 2 Prof. G. Stumme Algorithmen & Datenstrukturen Sommersemester 2009 5 1 Parametrisierbare Datenstrukturen in Java Motivation für
MehrProgrammierkurs Java
Programmierkurs Java Java Generics und Java API (2/2) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck https://www.itm.uni-luebeck.de/people/fischer #2 Listen Bisher: Collections
MehrGrundkonzepte java.util.list
Grundkonzepte java.util.list Eine List ist eine Spezialisierung einer allgemeinen Ansammlung (Collection): Lineare Ordnung ist definiert Zugriff über Rang oder Position Volle Kontrolle wo eingefügt bzw.
MehrObjektorientiertes Programmieren mit Java
Java - Collections Objektorientiertes Programmieren mit Java 1 Java Collections Gliederung Grundlagen Die Klassen Vector, Stack, HashTable und BitSet Der Typ List Iteratoren Set und Map Sortierte Collections
MehrKapitel 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
MehrVorlesung Programmieren
Vorlesung Programmieren 12 Java API Jun.-Prof. Dr.-Ing. Anne Koziolek Version 1.1 ARBEITSGRUPPE ARCHITECTURE-DRIVEN REQUIREMENTS ENGINEERING (ARE) INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION
MehrKapitel 6: Java Collection Teil I
Kapitel 6: Java Collection Teil I Übersicht Bemerkungen Collection List LinkedList und ArrayList Queue und Deque ArrayDeque 6-1 In diesem Kapitel Die Java-API enthält eine Sammlung von generischen Schnittstellen
MehrSoftware Entwicklung 1
Software Entwicklung 1 Annette Bieniusa AG Softech FB Informatik TU Kaiserslautern Lernziele Abstrakte Datentypen Stack und Queue zu implementieren und anzuwenden Vorteile von parametrischer Polymorphie
MehrFaulheit professionell: Fertige Datenbehälter. Das Java-Collections-Framework Typsicherheit Generische Klassen
Faulheit professionell: Fertige Datenbehälter Das Java-Collections-Framework Typsicherheit Generische Klassen Das Java Collections Framework Grundlegende Interfaces Das Interface List Das Interface List
MehrALP II Dynamische Datenmengen Datenabstraktion
ALP II Dynamische Datenmengen Datenabstraktion O1 O2 O3 O4 SS 2012 Prof Dr Margarita Esponda M Esponda-Argüero 1 Dynamische Datenmengen Dynamische Datenmengen können durch verschiedene Datenstrukturen
MehrEinführung in die Objektorientierte Programmierung Vorlesung 18: Lineare Datenstrukturen. Sebastian Küpper
Einführung in die Objektorientierte Programmierung Vorlesung 18: Lineare Datenstrukturen Sebastian Küpper Unzulänglichkeit von Feldern Wenn ein Unternehmen alle Rechnungen eines Jahres verwalten möchte,
MehrJava Schulung. Objektorientierte Programmierung in Java Teil V: Die Java Collection Klassen. Prof. Dr. Nikolaus Wulff
Java Schulung Objektorientierte Programmierung in Java Teil V: Die Java Collection Klassen Prof. Dr. Nikolaus Wulff Collections in Java 2 Java 2 Collections: http://java.sun.com/products/jdk/1.2/docs/guide/collections/index.html
MehrProgrammierkurs Java
Programmierkurs Java Java Generics und Java API (1/2) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck https://www.itm.uni-luebeck.de/people/fischer Datenstrukturen In vielen Sprachen
MehrSoftware Entwicklung 1
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Überblick Parametrisierte Datentypen mit Java Generics Java Collections Framework Parametrisierte
MehrJava Einführung Collections
Java Einführung Collections Inhalt dieser Einheit Behälterklassen, die in der Java API bereitgestellt werden Wiederholung Array Collections (Vector, List, Set) Map 2 Wiederholung Array a[0] a[1] a[2] a[3]...
MehrProgrammieren in Java
Generische Datentypen 2 Wiederholung: Fehlerbehandlung durch Exceptions Die Ausführung einer Methode kann jederzeit durch das Werfen einer Exception-Instanz beendet werden Methoden, die durch eine Exception
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1. Kapitel 11. Listen. Listen
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1 Kapitel 11 Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 2 Ziele Implementierungen für
MehrKapitel 7: Java Collection Teil I
Kapitel 7: Java Collection Teil I! Übersicht! Bemerkungen! Collection! List! LinkedList und ArrayList! Queue und Deque! ArrayDeque Prof. Dr. O. Bittel, HTWG Konstanz Programmiertechnik II Java Collection
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 13. Listen. Listen 1
Kapitel 13 Listen Listen 1 Ziele Implementierungen für Listen kennenlernen Einfach verkettete und doppelt verkettete Listen verstehen Listen-Implementierungen in der Java-Bibliothek kennenlernen Durch
MehrEinfü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
MehrMengen und Multimengen
Überblick 21. Datenstrukturen 21.1 Einleitung 21.2 Listen 21.3 Assoziative Speicher 21.4 Bäume 21.5 Mengen 21.6 Das Collections-Framework in Java 21 Datenstrukturen 5 Mengen Einf. Progr. (WS 08/09) 870
MehrCollections. Arthur Zaczek. Nov 2015
Arthur Zaczek Nov 2015 1 Collections 1.1 Definition Anhäufung von Objekten Werte können hinzugefügt, gesucht und gelöscht werden Implementierung mit verschiedenen Algorithmen, je nach Nutzung 1.2 Grundlegende
MehrProgrammieren 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
MehrAufgabenblatt 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Ü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
MehrEinfü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.
MehrJavakurs 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
MehrLineare Datenstrukturen: Felder, Vektoren, Listen Modelle: math. Folge (a i ) i=1.. mit Basistyp T oder: [T]
Teil II: Datenstrukturen Datenstrukturen Lineare Datenstrukturen: Felder, Vektoren, Listen Modelle: math. Folge (a i ) i=1.. mit Basistyp T oder: [T] Nichtlineare Datenstrukturen: Bäume Modell(e): spezielle
MehrObjektorientierte Programmierung. Kapitel 21: Einführung in die Collection Klassen
Stefan Brass: OOP (Java), 21. Collection Klassen 1/30 Objektorientierte Programmierung Kapitel 21: Einführung in die Collection Klassen Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester
MehrProgrammieren I. Kapitel 13. Listen
Programmieren I Kapitel 13. Listen Kapitel 13: Listen Ziel: eigene Datenstrukturen erstellen können und eine wichtige vordefinierte Datenstruktur( familie) kennenlernen zusammengehörige Elemente zusammenfassen
Mehrpublic interface Stack<E> { public void push(e e); public E pop();
ADS Zusammenfassung René Bernhardsgrütter 02.04.2012 1 Generics Gewähren Typsicherheit und können für verschiedene Datentypen ohne Casts verwendet werden. Beim Erstellen der Klasse werden Platzhalter für
MehrSchein-/Bachelorklausur Teil 2 am Zulassung: Mindestens 14 Punkte in Teilklausur 1 und 50% der Übungspunkte aus dem 2. Übungsblock.
Schein-/Bachelorklausur Teil 2 am 13.02.2007 Zulassung: Mindestens 14 Punkte in Teilklausur 1 und 50% der Übungspunkte aus dem 2. Übungsblock. Alle Studiengänge außer Bachelor melden sich über die Lehrstuhlwebseite
MehrWo sind wir? Rudolf Berrendorf FH Bonn-Rhein-Sieg Programmiersprache Java 338
Wo sind wir? Java-Umgebung Lexikale Konventionen Datentypen Kontrollstrukturen Ausdrücke Klassen, Pakete, Schnittstellen JVM Exceptions Java Klassenbibliotheken Ein-/Ausgabe Collections Threads Applets,
MehrCollections 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
MehrProgrammieren II. Hierarchie von Collections. Vorlesung 3. Handout S. 1. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester 2010
Programmieren II Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2010 1 / 22 Collections und Iteratoren ListIterator Sets 2 / 22 Hierarchie von Collections Die sequenziellen Container (ArrayList
MehrProgrammieren 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
MehrNützliche Utility-Klassen des JDK
Nützliche Utility-Klassen des JDK java.util :, Properties, I18N, Scanner java.text : Ausgabeformatierung u.a. java.util.prefs : Hierarchische Konfigurationsdaten (1.5) java.util.logging : Aufzeichnung
MehrCollections. Arthur Zaczek
Collections Arthur Zaczek Nov 2015 1/31 Collections Collections 2/31 Definition Anhäufung von Objekten Werte können hinzugefügt, gesucht und gelöscht werden Implementierung mit verschiedenen Algorithmen,
MehrKapitel 4: Bäume i. 1. Einleitung. 2. Ein Datenmodell für Listen. 3. Doppelt-verkettete Listen. 4. Bäume. 5. Das Collections-Framework in Java
Kapitel 4: Bäume i 1. Einleitung 2. Ein Datenmodell für Listen 3. Doppelt-verkettete Listen 4. Bäume 5. Das Collections-Framework in Java Prof. Dr. Peer Kröger: EiP (WS 18/19) Teil 11: Datenstrukturen
MehrVorlesung 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
Mehr17. 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
MehrADT: Java Collections und ArrayList
ADT: Java Collections und ArrayList Überblick der Klassen Object File Collections Map List Set ArrayList LinkedList SortedSet HashSet SortedSet Methode ArrayList Klasse I Beschreibung void add(int position,
MehrGrundlagen der Informatik 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
MehrProgrammieren 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
MehrAlgorithmen 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:
MehrProbleme ohne generische Typen
Generics seit Java1.5 SSJ Kapitel 15 Probleme ohne generische Typen Klassen, die mit Objekten verschiedenen Typs arbeiten können class List { Object[ ] data = ; void add(object x) { Object remove() { Probleme
MehrNeuere Sprachelemente in Java
Softwaretechnik 1 Vorlesung Neuere Sprachelemente in Java Prof. Dr. Bernhard Rumpe Technische Universität Braunschweig http://www.sse.cs.tu-bs.de/ Seite 2 Neuerungen seit Java 5.0 Java Spracherweiterungen
MehrHashmap: Video Erklärung
Hashmap Hashmap: Video Erklärung Definition und Motivation Array: Zugriff über Index=Zahl Wert(Value) Schlüssel(Key) Maier, Klaus 21 Array Hashtag: Zugriff über einen nichtnumerischen Wert 06431 92310
MehrStacks, Queues & Bags. Datenstrukturen. Pushdown/Popup Stack. Ferd van Odenhoven. 19. September 2012
, Queues & Ferd van Odenhoven Fontys Hogeschool voor Techniek en Logistiek Venlo Software Engineering 19. September 2012 ODE/FHTBM, Queues & 19. September 2012 1/42 Datenstrukturen Elementare Datenstrukturen
MehrSelbststudium OOP7 & ALG2 Auftrag
Selbststudium OOP7 & ALG2 Auftrag Kapitel 5.6 1. zu bearbeitende Aufgaben: 5.24 bis 5.30 5.24: Return Method Set entryset() V get(object key) Set keyset() V put(k key, V value) void
MehrProgrammieren 2 02 Maps, Sets, Defensive Programmierung
Programmieren 2 02 Maps, Sets, Defensive Programmierung Bachelor Medieninformatik Sommersemester 2016 Dipl.-Inform. Ilse Schmiedecke schmiedecke@beuth-hochschule.de 1 MAP - Zusammenfassung 2 2 Assoziative
Mehr12.3 Ein Datenmodell für Listen
Zweiter Versuch: Wir modellieren ein Element der Liste zunächst als eigenständiges Objekt. Dieses Objekt hält das gespeicherte Element. Andererseits hält das Element- Objekt einen Verweis auf das nächste
MehrJavakurs FSS Lehrstuhl Stuckenschmidt. Tag 4 ArrayList, PriorityQueue, HashSet und HashMap
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 4 ArrayList, PriorityQueue, HashSet und HashMap Array List Dynamisches Array ArrayList vertritt ein Array mit variabler Länge Kapazität passt sich automatisch
MehrAlgorithmen und Datenstrukturen in Java. 2007 Jiri Spale, Algorithmen und Datenstrukturen in Java 1
Algorithmen und Datenstrukturen in Java 2007 Jiri Spale, Algorithmen und Datenstrukturen in Java 1 Enumeratoren und Iteratoren Daten üblich gespeichert in: - Arrays, verketteten Listen, Bäumen, Geläufige
MehrProgrammierzertifikat Objekt-Orientierte Programmierung mit Java
Programmierzertifikat Objekt-Orientierte Programmierung mit Java Vorlesung 07: Collections Peter Thiemann Universität Freiburg, Germany SS 2008 Peter Thiemann (Univ. Freiburg) Programmierzertifikat Objekt-Orientierte
MehrJava Generics & Collections
Java Praktikum Effizientes Programmieren (Sommersemester 2015) Dennis Reuling Agenda 1 2 3 1 / 30 Praktikum Effizientes Programmieren (Sommersemester 2015) Java Subtyping Teil 1 2 / 30 Praktikum Effizientes
MehrMengen 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
MehrInfo B VL 14: Java Collections/Reflections
Info B VL 14: Java Collections/Reflections Objektorientiere Programmierung in Java 2003 Ute Schmid (Vorlesung) Elmar Ludwig (Übung) FB Mathematik/Informatik, Universität Osnabrück Info B VL 14: Java Collections/Reflections
MehrSchwerpunkte. Verkettete Listen. Verkettete Listen: 7. Verkettete Strukturen: Listen. Überblick und Grundprinzip. Vergleich: Arrays verkettete Listen
Schwerpunkte 7. Verkettete Strukturen: Listen Java-Beispiele: IntList.java List.java Stack1.java Vergleich: Arrays verkettete Listen Listenarten Implementation: - Pascal (C, C++): über Datenstrukturen
Mehr7. Verkettete Strukturen: Listen
7. Verkettete Strukturen: Listen Java-Beispiele: IntList.java List.java Stack1.java Version: 4. Jan. 2016 Vergleich: Schwerpunkte Arrays verkettete Listen Listenarten Implementation: - Pascal (C, C++):
MehrTU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.
TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. Übung zur Vorlesung Einführung in die Informatik für Ingenieure (MSE) Alexander van Renen (renen@in.tum.de)
MehrEffiziente verkettete Listen
Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative student"
Mehr1. Welches Interface ist nicht von Collection abgeleitet? A. B. C. D. List Set Map SortedSet. 2. Welche Aussagen sind richtig?
Prof. Dr. Detlef Krömker Ashraf Abu Baker Robert-Mayer-Str. 10 60054 Frankfurt am Main Tel.: +49 (0)69798-24600 Fax: +49 (0)69798-24603 EMail: baker@gdv.cs.uni-frankfurt.de 1. Welches Interface ist nicht
MehrEffiziente verkettete Listen
Dr. Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-16-17/infoeinf WS16/17 Action required now 1. Smartphone: installiere die App "socrative
MehrGraphdurchmusterung, Breiten- und Tiefensuche
Prof. Thomas Richter 18. Mai 2017 Institut für Analysis und Numerik Otto-von-Guericke-Universität Magdeburg thomas.richter@ovgu.de Material zur Vorlesung Algorithmische Mathematik II am 18.05.2017 Graphdurchmusterung,
MehrÜbungsblatt 13. Abgabe / Besprechung in Absprache mit dem Tutor
Albert-Ludwigs-Universität Freiburg Institut für Informatik Einführung in die Informatik Sommersemester 2013 PD Dr. Cyrill Stachniss Dr. Rainer Kümmerle Übungsblatt 13 Abgabe / Besprechung in Absprache
Mehr1. Die rekursive Datenstruktur Liste
1. Die rekursive Datenstruktur Liste 1.6 Die Datenstruktur Stapel Ein Stack, auch Stapel oder Keller genannt, ist eine Datenstruktur, bei der die Elemente nur an einem Ende der Folge eingefügt bzw. gelöscht
MehrDatenstrukturen. Ziele
Datenstrukturen Ziele Nutzen von Datenstrukturen Funktionsweise verstehen Eigenen Datenstrukturen bauen Vordefinierte Datenstrukturen kennen Hiflsmethoden komplexer Datenstrukten kennen Datenstrukturen
MehrProgrammieren 2 15 Abstrakte Datentypen
Programmieren 2 15 Abstrakte Datentypen Bachelor Medieninformatik Sommersemester 2015 Dipl.-Inform. Ilse Schmiedecke schmiedecke@beuth-hochschule.de 1 Verallgemeinerte Datenbehälter Typ, der eine variable
MehrRealisierungsmöglichkeiten für parametrische Polymorphie
4. Parametrisierbare Klassen Realisierung von Generics Realisierungsmöglichkeiten für parametrische Polymorphie heterogen Für jeden konkreten Typ wird individueller Code erzeugt (type expansion). Diesen
MehrKapitel 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Übung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 2017 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda: Kürzeste Wege, Heaps, Hashing Heute: Kürzeste Wege: Dijkstra Heaps: Binäre Min-Heaps Hashing:
MehrDie Java - Collections API
Die Java - API HAW - Hamburg 16. April 2011 Inhaltsüberblick 1 Intention Schlüsselworte Klassenübersicht von und Maps HashCode Binärbäume Interface: Comparable 2 Collection Map 3 List und Queues Sets Maps
Mehr16. Dynamische Datenstrukturen
Datenstrukturen 6. Dynamische Datenstrukturen Eine Datenstruktur organisiert Daten so in einem Computer, dass man sie effizient nutzen kann. Verkettete Listen, Abstrakte Datentypen Stapel, Warteschlange
Mehr