ADT: Java Collections und ArrayList

Ähnliche Dokumente
JAVA KURS COLLECTION

Java Einführung Collections

Teil V. Generics und Kollektionen in Java

Grundkonzepte java.util.list

1.2 Attribute und Methoden Aufbau einer Java-Klasse:

Einführung in die Programmierung

Datenstrukturen in Java. Dr. Horst Treiblmaier Abteilung für Wirtschaftsinformatik WU Wien

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

Javakurs für Anfänger

Ein erstes Java-Programm

Java für Computerlinguisten

Grundlagen der Informatik Generische Klassen

AuD-Tafelübung T-B5b

Java Generics & Collections

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

Einführung in die Java- Programmierung

Computeranwendung und Programmierung (CuP)

1 Polymorphie (Vielgestaltigkeit)

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein

Javakurs für Anfänger

Javakurs für Anfänger

Einstieg in die Informatik mit Java

Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik. Jede Applikation braucht eine Klasse mit einer main-methode

Einführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015

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

Algorithmen und Datenstrukturen

Java: Vererbung. Teil 3: super()

5.14 Generics. Xiaoyi Jiang Informatik I Grundlagen der Programmierung

Java-Schulung Grundlagen

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

Schnittstellen implementieren am Beispiel Suchbaum

Klassen und Objekte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg

Javakurs für Anfänger

Musterlösungen zur Klausur Informatik 3

Javakurs zu Informatik I. Henning Heitkötter

Liste Programmieren Java Überblick

Einführung in die Programmierung 1

Problemstellung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 24: Reflection 1. IDE und automatische Tests.

Datenbankanwendungsprogrammierung Crashkurs Java

Objektorientierte Programmierung

Javakurs 2013 Objektorientierung

4.4.9 Das Java Collection Framework

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

Selbststudium OOP Programmieren 1 - H1103 Felix Rohrer

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Beispiel: Temperaturumwandlung. Imperative Programmierung. Schwerpunkte. 3. Grundlegende Sprachkonstruktionen imperativer Programme

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

Einführung in die STL

Primitive Datentypen

Welche Informatik-Kenntnisse bringen Sie mit?

Repetitorium Informatik (Java)

5. Tutorium zu Programmieren

Kapitel 6. Vererbung

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

Javaprogrammierung mit NetBeans. Variablen, Datentypen, Methoden

Java I Vorlesung 6 Referenz-Datentypen

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

5.4 Klassen und Objekte

Programmieren I. Prinzipieller Ablauf. Eigenschaften von JAVA. Source-Code Javac Bytecode. Java Virtual Machine (Java, Browser, Appletviewer)

Einstieg in die Informatik mit Java

Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala

Gliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik

Äußere Form ArrayList Vererbung API. Einführung in Java. Arne Hüffmeier. Michelle Liebers, Dennis Hoffmann. Tilman Lüttje, Jean Wiele

Generische Datenstrukturen

Java Database Connectivity (JDBC) Walther Rathenau Gewerbeschule 1

Modul 122 VBA Scribt.docx

Assoziation und Aggregation

Java: Eine Übersicht. Dennis Giffhorn. Lehrstuhl für Programmierparadigmen Universität Karlsruhe

Java 7. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Dezember 2011 JAV7

Bean-Mapping mit MapStruct

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

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

Test zu Grundlagen der Programmierung Leitung: Michael Hahsler. 21. November 2003

Vererbung & Schnittstellen in C#

Studentische Lösung zum Übungsblatt Nr. 7

Java Schulung (Java 2 Java Development Kit 5 / 6)

Java Programmierung Grundlagen

7. Schnittstellen Grundlagen zu Schnittstellen. 7. Schnittstellen

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008

Generische Typen in Java

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

Einführung in die Programmierung Vorlesungsprüfung

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

Programmieren. JavaScript-Objekt-Verarbeitung mit GSON. Heusch --- Ratz Institut für Angewandte Informatik

Datenfelder (Arrays) Vektoren, Matrizen, Tabellen. Dr. Beatrice Amrhein

Hello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3.

Propädeutikum zur Programmierung

Transkript:

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, element obj) boolean add(element obj) boolean addall(collection c) element remove(int position) boolean remove(object obj) void clear() boolean contains(object o) Fügt ein Element an einer bestimmten Stelle in ArrayList ein. Fügt ein Element an das Ende der ArrayList hinzu. Fügt eine Auflistung an das Ende der ArrayList hinzu. Entfernt ein Element an der Position position von ArrayList. Entfernt das erste Vorkommen des Elements obj in der Liste ArrayList. Entfernt alle Elemente der Liste ArrayList. Gibt wahr zurück wenn ArrayList das entsprechende Element element enthält.

Methode object get(int position) int indexof(object o) int lastindexof(object o) int size() ArrayList Klasse II Beschreibung Gibt das Element an der Stelle position zurück Gibt den ersten Eintrag von dem Element o zurück oder -1 falls das Element nicht gefunden wird. Gibt das letzte Auftreten des Elementes in der Liste zurück oder -1 wenn das Element nicht gefunden wird. Gibt die Anzahl der Elemente der Liste wieder.

Collections Überblick der Methoden in Sub/SuperKlassen Da sich ArrayList von Collections ableitet, sind dort viele Methoden bereits implementiert: add, remove, contains, size,. List ArrayList

Information über Methoden und generische Parameter I http://grepcode.com Für z.b Eclipse- Entwickler Import Anweisung JDK-Version, in der sich Änderungen ersgeben haben(daher nicht alle!)

Information über Methoden und generische Parameter II Erklärung Wahl der Methode

ArrayList Beispiel I import java.util.arraylist; import java.util.iterator; public class Example1 { public static void main(string[] args) { Einbinden der nötigen Bibliotheken; besser: import java.util.*;

ArrayList Beispiel II ArrayList <String> myarraylist = new ArrayList < String > (); myarraylist.add("apple"); myarraylist.add("mango"); myarraylist.add("grapes"); myarraylist.add("orange"); System.out.println("Inhalt:" + myarraylist ); myarraylist.remove(2); Entfernt den 2.ten Eintrag System.out.println("Nach dem Entfernen des Elementes Nr.2:" + myarraylist ); System.out.println("Anzahl der Elemente:" + myarraylist.size()); Iterator <String> itr = myarraylist.iterator(); while (itr.hasnext()) { System.out.println(itr.next()); Deklaration der Liste Zufügen vier Elemente Gibt die Liste aus Erstellt eine Iteratorvariable; Durchläuft alle Elemente

Ausgabe: ArrayList Beispiel III Inhalt:[apple, mango, grapes, orange] Nach dem Entfernen des Elementes Nr.2:[apple, mango, orange] Anzahl der Elemente:3 apple mango orange

Liste löschen myarraylist.clear(); Liste durchlaufen Variante A ArrayList Ergänzungen for(int i=0; i < myarraylist.size(); i++) Object element = myarraylist.get(i); Liste durchlaufen Variante B for(object element: myarraylist) System.out.print(element);

List list = new ArrayList(); Generics I Eine Liste(und abgeleitete Klassen wie Arraylist) ist eine Liste von Zeigern auf Objekten(Instanzierungen von Klassen). Daher kann man in einer Liste jedes Objekt speichern: list.add(new Integer(2)); list.add("a String"); list.add(2); list.add(new String("a String")); Integer integer = (Integer) list.get(0); String string = (String) list.get(1); Konstante, die Adresse wird als Zeiger gespeichert Problem: Das Element wird als Objekt gespeichert Beim Auslesen der Objekte müssen diese in einen anderen Objekttyp wie String oder Integer konvertiert werden;

Generics II Lösung: Generics Festlegen der Datentypen der verwendeten Instanzen Festlegen des Datentyps des neuen Objektes List<String> strings = new ArrayList<String>(); strings.add("a String"); String astring = strings.get(0); Hier wird ein Wert vom Datentyp String und nicht Object hinzugefügt! Problemloses Zuweisen des ersten Elementes an die String Variable, da get nun den Datentyp String und nicht Object zurückgibt! Kurze Variante: List<String> strings = new ArrayList ();

Wrapper Klassen I Motivation: Erstellen von einem Wrapper, damit primitive Datentypen in den Java Kollektionen als Klassen verwendet werden können. Dabei wir z.b. boolean durch Boolean ersetzt: Boolean <- boolean Byte <- byte Character <- char Double <- double Float <- float Integer <- int Long <- long Short <- short

Wrapper Klassen II Erstellen oder konvertieren(3 Möglichkeiten): Integer y =Integer.valueOf( "30" ); Integer y = new Integer(10); Integer y = 10; y++; System.out.println("y = " + y); statische valueof Konstruktor Boxing (verwendet valueof) Vergleich von zwei Werten(Zwei Instanzen von Objekten): equals -> siehe Strings, die Objekte sind! Daher funktioniert dort = nicht, aber natürlich equals!

Eigene generische Klassen Beispiel I class GenericClass<T>{ T t; public GenericClass(T t){ this.t = t; public void sett(t t){ this.t = t; public T gett(){ return t; Allgemeiner Datentyp, kann bel. Zeichenkette sein! Auch mehrere mit <T1, T2> möglich! Definition des Attributes Konstruktor Setter und Getter des Attributes

Eigene generische Klassen Beispiel I Lange Form Verwendung: //GenericClass<String> mygenclass = new GenericClass<String>("It must be string"); GenericClass<String> mygenclass = new GenericClass("It must be string"); mygenclass.sett("value Changed"); String s = mygenclass.gett(); //gen1.sett(new Integer(123)); Deklaration einer Variablen Verwendung von Setter und Getter Würde Fehler ergeben, da kein String!

Eigene generische Klassen Beispiel II Eigene Klasse: class A{ int i; public A(int i) { this.i = i; Verwendung: Deklaration mit neuer Instanz von A GenericClass<A> gen1 = new GenericClass(new A(10)); System.out.println(gen1.getT().i); gett gibt das gespeicherterte T-Objekt vom Typ A zurück, welches das (öffentliche) Attribut i hat!

Eigene generische Methoden Beispiel public class TestGenericMethod { public static < T > void printarray( T[] inputarray ) { for(t element : inputarray) System.out.print( element+" "); public static void main(string args[]) { Integer[] intarray = { 1, 2, 3, 4, 5 ; Character[] chararray = { 'M', 'r', '.', 'B', 'i', 'g' ; System.out.println("Array integerarray contains:"); printarray(intarray); // Integer array als Argument System.out.println("\nArray characterarray contains:"); printarray(chararray); // Character array als Argumet Definition & Verwendung des Objekttypen Aufruf mit bel. Objekttypen möglich! Literatur: http://tutorials.jenkov.com/java-generics/index.html

ArrayList ArrayList vs LinkedList LinkedList Suchen: Löschen: Einfügen: O(1) O(1) O(1) O(n) O(1)/O(n) O(n)