Java Einführung Collections



Ähnliche Dokumente
JAVA KURS COLLECTION

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

Objektorientierte Programmierung

Software Engineering Klassendiagramme Assoziationen

Java: Vererbung. Teil 3: super()

U08 Entwurfsmuster (II)

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Einführung in die Programmierung

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Programmierkurs Java

Objektorientierte Programmierung

Objektorientierte Programmierung. Kapitel 12: Interfaces

Einführung in die Java- Programmierung

Java Generics & Collections

Objektorientierte Programmierung

Einführung in die Programmierung für Wirtschaftsinformatik

Programmierkurs Java

Übungsblatt 3: Algorithmen in Java & Grammatiken

Übungen Programmieren 1 Felix Rohrer. Übungen

Sichtbarkeit & statische Methoden. Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben

Einstieg in die Informatik mit Java

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7

Studentische Lösung zum Übungsblatt Nr. 7

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Java Einführung Abstrakte Klassen und Interfaces

Suchbäume. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

Arrays von Objekten. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Aufgabenblatt Nr. 5 Generizität und TicTacToe

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

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = Euro ergeben.

Java Einführung Operatoren Kapitel 2 und 3

Javakurs zu Informatik I. Henning Heitkötter

Java Database Connectivity (JDBC) Walther Rathenau Gewerbeschule 1

WPF Steuerelemente Listbox, ComboBox, ListView,

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

Algorithmen & Datenstrukturen 1. Klausur

Arrays von Objekten. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Arrays Fortgeschrittene Verwendung

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

Java Projekt: Tic Tac Toe + GUI

Prof. Dr. Uwe Schmidt. 21. August Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252)

SEP 114. Design by Contract

Algorithmen und Datenstrukturen

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

Java Kurs für Anfänger Einheit 5 Methoden

Übung Grundlagen der Programmierung. Übung 05: Arrays. Abgabetermin: xx.xx.xxxx. Java-Programm Testplan Testergebnisse

Einführung in die Java- Programmierung

Verwendung der PayJoe -API zum externen Upload von Belegen und Zahlungen

Wo sind wir? Rudolf Berrendorf FH Bonn-Rhein-Sieg Programmiersprache Java 338

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Computeranwendung und Programmierung (CuP)

Es wird das Struts <html:option> Element erläutert und anhand von kleinen Beispielen der Umgang veranschaulicht.

EndTermTest PROGALGO WS1516 A

Assoziation und Aggregation

Programmieren in Java

Innere Klassen in Java

Auktion name adresse pseudonym adresse /bewertungszahl. Gebot. höhe zeitpunkt bieter. initiiert

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Übungen zu Computeranwendung und Programmierung WS 13/14

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

Grundlagen von Python

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

IAWWeb PDFManager. - Kurzanleitung -

Anleitung zur Erstellung und Bearbeitung von Seiten in Typo3. Typo3. Anleitung. Wenpas Informatik

Bearbeitungszeit: 120 Minuten. Kommentare kosten Zeit; kommentieren Sie ihr Programm nur da, wo der Code alleine nicht verständlich wäre.

Vorkurs C++ Programmierung

In vergleichsbasierten Suchbäumen wird nicht in Schlüssel hineingeschaut.

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Arrays. PHP JavaScript Kapitel 9

Applet Firewall und Freigabe der Objekte

Folge 19 - Bäume Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Überblick. Lineares Suchen

Übung Grundlagen der Programmierung. Übung 03: Schleifen. Testplan Testergebnisse

2A Basistechniken: Weitere Aufgaben

2. Semester, 2. Prüfung, Lösung

Gliederung Grundlagen Schlüsselworte try-catch Fehlerobjekte Fehlerklassen Schlüsselwort finally Schlüsselwort throws selbst erstellte Exceptions

Prinzipien Objektorientierter Programmierung

Objektorientierte Programmierung mit C++ Vector und List

Java Einführung Packages

Graphic Coding. Klausur. 9. Februar Kurs A

Zählen von Objekten einer bestimmten Klasse

Transkript:

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]... a[10] a... Ein Array hat einen Namen (hier: a) Die einzelnen Elemente können durch den Index ([0],[1],...) angesprochen werden Die einzelnen Elemente verhalten sich wie namenlose Variablen Die Größe wird einmal festgelegt und ist dann fix. 3

java.util.arrays Die Klasse java.util.arrays stellt Funktionalitäten für das Arbeiten mit Arrays zur Verfügung. Ein Auszug: boolean Arrays.equals(Object[] a, Object[] a2) Liefert true, wenn die Arrays a und a2 identisch sind. Die Objekte im Array müssen mittels equals() vergleichbar sein! void Arrays.fill(Object[] a, Object val) Weist allen Elementen des Array a das Objekt val zu. void Arrays.sort(Object[] a) Sortiert das Array a in aufsteigender Reihenfolge. Alle Elementen müssen das Comparable Interface implementiert haben! int Arrays.binarySearch(Object[] a, Object key) Sucht im sortierten (durch sort(...)) Array a nach dem Element key unter Verwendung der binären Suchmethode und liefert den Index des gefundenen Objektes bzw. einen negativen Wert bei Misserfolg. 4

Beispiel: Arrays import java.util.arrays; class ArrayDemo { public static void main (String [] args) { int [] myarray = {9, 23, 1, -28, 8}; Arrays.sort(myArray); } for (int i = 0; i < myarray.length;i++){ System.out.println(myArray[i]); } 5

Collections Collections bieten ein Konzept, welches Objekte zu Gruppen zusammen fasst (z.b. eine Klasse (Gruppe von Studenten), ein Postfach (Gruppe von Emails) oder ein Telefonverzeichnis (Gruppe von Name- Telefonnummer- Paaren). Mit einem Collection-Objekt können Instanzen beliebiger Klassen verwaltet werden. Seit J2SE 5.0 gibt es Generics, davor galt: Spezielle Typinformation der einzelnen Objekte geht dabei verloren, da sie als Object gespeichert werden. Um die Instanzen verwenden zu können, müssen auf den entsprechenden Datentyp umgewandelt werden (Casting). 6

Struktur von Collections <<interface>> Iterator verwendet <<interface>> Collection zeigt auf 1 * Objekt 7

Interface von Collections boolean add(e o) Fügt das Objekt o hinzu und liefert true bzw. false, je nachdem, ob das Objekt erfolgreich hinzugefügt werden konnte. void clear() Löscht alle Elemente im Container. boolean contains(e o) Liefert true, wenn das Objekt o im Container enthalten ist. boolean remove(e o) Liefert true, wenn das Objekt o im Container gelöscht werden konnte. int size() Liefert die Anzahl der Elemente. Iterator iterator() Liefert ein Iterator Objekt zum Zugriff auf die Elemente des Containers. E Generic: Klasse für die die Collection erzeugt wurde. 8

Interface von Iterator boolean hasnext() Liefert true, wenn es weitere Elemente im Container gibt - bei false liefert der Aufruf von next eine Exception. Object next() Liefert das nächste Element. void remove() Löscht das aktuelle Element der Collection. 9

Arten von Collections Set (HashSet, TreeSet,...) kann Elemente nicht doppelt enthalten schnelle Suche List (ArrayList, LinkedList, Vector, Stack,...) kann Elemente doppelt enthalten Elemente haben eine Reihenfolge variable Länge, schnelles Einfügen und Löschen 10

Verwendung von List import java.util.*; class PointList { public static void main (String [] args) { List<Point> mypoints = new LinkedList<Point>(); mypoints.add(new Point(1.0,1.0)); System.out.println("Die Liste enthält " + mypoints.size()+" Punkt(e)!\n"); }} Iterator<Point> it = mypoints.iterator(); while(it.hasnext()) { Point b = it.next(); System.out.println("Point("+b.x+","+b.y+") "); } class Point { double x,y; Point(double xi, double yi) { x=xi; y=yi; }} 11

Verwendung von Vector import java.util.*; class PointVector { public static void main (String [] args) { Vector mypoints = new Vector<Point>(); mypoints.add(new Point(1.0,1.0)); System.out.println("Die Liste enthält " + mypoints.size()+" Punkt(e)!\n"); }} for( int i=0; i<mypoints.size(); i++) { Point b = mypoints.elementat(i); System.out.println("Point("+b.x+","+b.y+") "); } class Point { double x,y; Point(double xi, double yi) { x=xi; y=yi; }} 12

Sonderfall: Map Map (Hashtable, TreeMap,...) schnelles Auffinden von Elemententen über einen key jedes Element muss einen eindeutigen key haben Map hat ein anderes Interface als Collections: Object put(k key, Object V value); Object get(k key); Object remove(k key); int size(); boolean isempty(); void putall(map t); void clear(); K, V Generics public Set keyset(); /* dadurch kann durch die Elemente wie durch ein Set iteriert werden! */ 13

import java.util.*; Verwendung von Maps class PointMap { public static void main (String [] args) { Map<String, Point> mypoints = new Hashtable<String, Point>(); mypoints.put("bubu", new Point(1.0,1.0)); // 1. einen Iterator auf das keyset erzeugen Iterator<String> it = mypoints.keyset().iterator(); // 2. Keys durchgehen und Elemente aus der Map holen while(it.hasnext()) { String akey = it.next(); Point b = mypoints.get(akey); } } } System.out.println("Key: "+akey +" Value: "+b); 14

Verwendung von Maps II import java.util.*; class PointMap { public static void main (String [] args) { Map<String, Point> mypoints = new Hashtable<String, Point>(); mypoints.put("bubu", new Point(1.0,1.0)); for(string akey : mypoints.keyset())) { // for-each loop Point b = mypoints.get(akey); } } } System.out.println("Key: "+akey +" Value: "+b); 15

Was Sie nach dieser Einheit wissen sollten... Die Verwendung der Hilfsmethoden von java.util.arrays. Die Interfaces von Collection und Interator. Die Unterschiede von Lists, Sets und Maps und wie diese eingesetzt werden. 16