Einstieg in die Informatik mit Java

Ähnliche Dokumente
JAVA KURS COLLECTION

Teil V. Generics und Kollektionen in Java

Java Schulung. Objektorientierte Programmierung in Java Teil V: Die Java Collection Klassen. Prof. Dr. Nikolaus Wulff

Java Einführung Collections

Grundkonzepte java.util.list

Java Generics & Collections

Grundlagen der Informatik Generische Klassen

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

U08 Entwurfsmuster (II)

Vorlesung 09: Mengen. Peter Thiemann SS 2010

Einstieg in die Informatik mit Java

Vorlesung Datenstrukturen

Gebundene Typparameter

Kapitel 3: Datentyp Liste

Fortgeschrittene Programmiertechnik Klausur SS 2015 Angewandte Informatik Bachelor

Selbststudium OOP Programmieren 1 - H1103 Felix Rohrer

Informatik 11 Kapitel 2 - Rekursive Datenstrukturen

Einführung in die Programmierung

Objektorientierte Programmierung

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

Advanced Programming in C

Programmierstil. Objektsammlungen. Konzepte. Zwischenspiel: Einige beliebte Fehler... Variablennamen Kommentare Layout Einrückung

8. Generics Grundlagen der Programmierung 1 (Java)

Schnittstellen implementieren am Beispiel Suchbaum

Institut für Informatik

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

Generische Datenstrukturen

Java I Vorlesung 6 Referenz-Datentypen

Einstieg in die Informatik mit Java

OOP. Tagesprogramm. Dynamische Typinformation. Homogene Übersetzung der Generizität. Generizität und Typumwandlungen

Studentische Lösung zum Übungsblatt Nr. 7

2. Programmieren gegen Schnittstellen Advanced Programming Techniques

Software Engineering Klassendiagramme Assoziationen

Javakurs für Anfänger

Institut für Programmierung und Reaktive Systeme 24. Juni Programmieren II. 14. Übungsblatt

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

Algorithmen und Datenstrukturen (für ET/IT)

12) Generische Datenstrukturen

Klausur zur Veranstaltung Programmierung (fortgeschrittene Konzepte)

Persistenz von Objekten relationale Datenbank Eigene Datenstruktur XML (JAXB) Proprietäre Dateiformate (Lochkarten)

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

Geordnete Binärbäume

Generische Typen in Java

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

von Anja Austermann Drag and Drop

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

Einstieg in die Informatik mit Java

Objektorientierte Programmierung

Einstieg in die Informatik mit Java

5.14 Generics. Xiaoyi Jiang Informatik I Grundlagen der Programmierung

Assoziation und Aggregation

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

7. Schnittstellen Grundlagen zu Schnittstellen. 7. Schnittstellen

Dr. Monika Meiler. Inhalt

C# im Vergleich zu Java

Vorlesung Informatik 2

Institut für Programmierung und Reaktive Systeme 25. August Programmier-Labor Übungsblatt. int binarysearch(int[] a, int x),

Klassen mit Instanzmethoden

Propädeutikum zur Programmierung

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

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

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6

4.4.9 Das Java Collection Framework

Hochschule Augsburg, Fakultät für Informatik Name:... Prüfung "Programmieren 1", IN1bac, WS 10/11 Seite 1 von 6

6. Interfaces Grundlagen der Programmierung 1 (Java)

Enumerations und innere Klassen

Einführung in die STL

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

Aufgabenblatt Nr. 5 Generizität und TicTacToe

Die Core-Tags. Die Core-Tags werden über den Tag Lib Desktiptor c.tld beschrieben und bekommen den Namensraum c zugewiesen.

Vererbung & Schnittstellen in C#

Übungen zu Computeranwendung und Programmierung WS 13/14

Vorlesung Programmieren

Einstieg in die Informatik mit Java

Programmieren I + II Regeln der Code-Formatierung

5. Tutorium zu Programmieren

Einstieg in die Informatik mit Java

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

Die Java Stream API. Funktionale Programmierung mit der Stream API des JDK 1.8. Prof. Dr. Nikolaus Wulff

Software-Entwurfsmuster

Synchronisation in Java. Invisible Web

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

1 Polymorphie (Vielgestaltigkeit)

String s1, s2; Eine Zuweisung geschieht am einfachsten direkt durch Angabe des Strings eingeschlossen in doppelte Hochkommata:

Der Datentyp String. Stringvariable und -vergleiche

Effiziente Java Programmierung

Java Collection Framework

Allgemeine Informatik 2 im SS 2007 Programmierprojekt

Repetitorium Informatik (Java)

Allgemeine Informatik II SS :30-13:30 Uhr

Transkript:

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 von ArrayList 4 Verwendung von Iteratoren

Gliederung 3 / 15 1 Überblick Collections 2 Hierarchie von Collections 3 Verwendung von ArrayList 4 Verwendung von Iteratoren

Überblick Collections Eine Collection ist eine Klasse, die mehrere gleichartige Elemente zusammenfasst. Viele solche Collection-Klassen sind im Java Collections Framework enthalten. Unterschied zu Feldern Flexiblere Möglichkeiten, viele Varianten Veränderliche Länge Etwas schwieriger zu programmieren Unterschied zu selbst geschriebenen Klassen Weniger eigener Aufwand Einheitliche, standardisierte Klassen aus JDK Collections Framework gut ausgetestet und effizient 4 / 15

Gliederung 5 / 15 1 Überblick Collections 2 Hierarchie von Collections 3 Verwendung von ArrayList 4 Verwendung von Iteratoren

Hierarchie von Collections 6 / 15 Alle Collection-Interfaces und -Klassen basieren auf dem Interface Collection. Sie sind i.a. generisch mit dem Typparameter E für die Elemente definiert, z.b. public interface C o l l e c t i o n <E> {... } Ohne generische Typparameter wird als Elementtyp Object verwendet. Dies dient zur Kompatibilität mit Programmen, die vor Java Version 5 geschrieben wurden.

7 / 15 Collections: Interfaces Beispiele für Interfaces: Collection: das grundlegende Interface zur Zusammenfassung mehrerer gleichartiger Elemente Set: Menge, jedes Element darf nur einmal vorkommen List: geordnete Liste, Elemente dürfen mehrfach vorkommen Queue: Schlange zur Bearbeitung der Elemente, meistens nach dem FIFO-Prinzip (first in, first out) Map: bildet jeweils einen Schlüssel (anstelle des Feldindex) auf ein Element ab; die Schlüssel müssen eindeutig sein SortedSet: geordnete Menge SortedList: geordnete Liste

Collections: Klassen Beispiele für Collection-Klassen: ArrayList: Implementierung von List, ähnlich wie ein herkömmliches Feld, Zugriff auf Elemente in konstanter Zeit O(1) LinkedList: Implementierung von List, intern als doppelt verkettete Liste realisiert (zu jedem Element ist der Zugriff auf seinen Nachfolger und Vorgänger möglich), Zugriff auf einzelne Elemente ist aufwendiger O(n) HashSet: Implementierung von Set HashMap: Implementierung von Map LinkedList: Implementierung von Queue und viele mehr Darüber hinaus gibt es noch Implementierungen für spezielle Zwecke (Concurrent Implementierungen für Mehrprozessorsysteme, Convenience-Implementierungen für leere Menge, usw.) 8 / 15

Gliederung 9 / 15 1 Überblick Collections 2 Hierarchie von Collections 3 Verwendung von ArrayList 4 Verwendung von Iteratoren

10 / 15 Verwendung von ArrayList Gemeinsame Zugriffsmethoden aller Collections: boolean add (E element) fügt das Element element zur Collection hinzu; das Ergebnis der Methode gibt an, ob dies erfolgreich war void clear () löscht alle Elemente boolean contains (E element) prüft, ob die Collection das Element e enthält boolean remove (E element) entfernt das Element element aus der Collection; das Ergebnis der Methode gibt an, ob dies erfolgreich war int size () liefert die Anzahl der Elemente in der Collection

Verwendung von ArrayList Einige spezielle Zugriffsmethoden von ArrayList: ArrayList () erzeugt eine leere neue ArrayList void add (int index, E element) fügt das Element element an Position index ein boolean isempty () prüft, ob die ArrayList leer ist E remove (int index) entfernt das Element an Position index und liefert eine Referenz auf das entfernte Element zurück E get (int index) liefert eine Referenz auf das Element an Position index zurück E set (int index, E element) ersetzt das Element an Position index durch element; liefert als Ergebnis eine Referenz auf das ersetzte frühere Element 11 / 15

Beispiel zu ArrayList 12 / 15 / / l e e r e L i s t e von S t r i n g s erzeugen A r r a y L i s t <String > l i s t e = new A r r a y L i s t <String > ( ) ; / / e i n i g e S t r i n g s hinzufuegen l i s t e. add ( Ada Lovelace ) ; l i s t e. add ( Konrad Zuse ) ; l i s t e. add ( Jimmy Wales ) ; / / testen ob die L i s t e l e e r i s t i f ( l i s t e. isempty ( ) ) System. out. p r i n t l n ( L i s t e i s t l e e r! ) ; / / a n d e r n f a l l s L i s t e durchlaufen else for ( i n t i =0; i <l i s t e. size ( ) ; i ++) System. out. p r i n t l n ( l i s t e. get ( i ) ) ;

Gliederung 13 / 15 1 Überblick Collections 2 Hierarchie von Collections 3 Verwendung von ArrayList 4 Verwendung von Iteratoren

14 / 15 Verwendung von Iteratoren Zum Durchlaufen einer Collection wird oft ein Iterator eingesetzt. Der Iterator einer Collection kann mit der Methode Iterator iterator () beschafft werden. Iterator ist ein Interface, passend zur jeweiligen Collection-Klasse. Gemeinsame Methoden von Iteratoren: E next () liefert das nächste Element vom Typ E in der Collection boolean hasnext () gibt an, ob noch weitere Elemente in der Collection vorhanden sind

Beispiel zu Iterator 15 / 15 / / l e e r e L i s t e von S t r i n g s erzeugen A r r a y L i s t <String > l i s t e = new A r r a y L i s t <String > ( ) ; / / e i n i g e S t r i n g s hinzufuegen l i s t e. add ( Ada Lovelace ) ; l i s t e. add ( Konrad Zuse ) ; l i s t e. add ( Jimmy Wales ) ; / / l i s t e m i t t e l s I t e r a t o r durchlaufen I t e r a t o r <String > i t e r = l i s t e. i t e r a t o r ( ) ; while ( i t e r. hasnext ( ) ) System. out. p r i n t l n ( i t e r. next ( ) ) ;