Import java.util.*; Hilfsklassen, die man eigentlich immer braucht.

Slides:



Advertisements
Ähnliche Präsentationen
Imperative Programmierung
Advertisements

DVG Dateien Dateien. DVG Dateien 2 Die Klasse File Die Klasse File stellt die Verbindung zwischen dem Filesystem des Rechners und dem.
Lineare Suche Divide-and-Conquer-Suche Kombinationssuche
der Universität Oldenburg
der Universität Oldenburg
Java: Dynamische Datentypen
Listen Richard Göbel.
Indirekte Adressierung
Motivation Richard Göbel.
Java: Referenzen und Zeichenketten
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (05 – Elementare Datenstrukturen) Prof. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 6 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Tag 2 Look-up-Tabellen, Zufallszahlen, Listen, Speichermanagement und Dateiverwaltung Quelle: 3D-Spiele mit C++ und DirectX in 21 Tagen, Alexander.
PRJ 2007/1 Stefan Dissmann Motivation Problem: gleiche Datenstrukturen werden für verschiedene Objekte gebraucht: z.B. Listen von Studierenden, Kunden,
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
Listen Prof. Dr. Christian Böhm in Zusammenarbeit mit Gefei Zhang
Entwurfsmuster – Iterator
DVG Kommentare1 Kommentare. DVG Kommentare 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht.
DVG Felder1 Felder. DVG Felder 2 Was sind Felder? Felder sind Reihungen aus endlich vielen Elementen gleichen Typs. Z.B.: Vektoren : (x.
DVG Klassen und Objekte
DVG Kommentare 1 Kommentare. 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht bis zum Ende der Zeile.
Einführung in die Programmierung Datensammlung
RelationentheorieObjektorientierte Datenbanken AIFB SS Das ODMG-Objektmodell vs. relationales Modell (1/9) ODMG-Objektmodell Literal_type Atomic_literal.
Kollektionstypen (1) Es sind polymorphe Typkonstruktoren, jeweils als Sorten- und als Klassenkonstruktor (t,v beliebige Typen): –set, Set :Ungeordnete.
FH-Hof 1 XML-Parser Richard Göbel. FH-Hof 2 XML-Parser- DOM Object Tree Parser Objekt der Klasse 'DocumentBuilderFactory' mit 'newInstance()' erzeugen.
Einführung in die Programmierung
Java programmieren mit JavaKara
Grundlagen der Informatik 1
Kontrollstrukturen Verwendung: Steuerung des Ablaufs.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
University of Applied Sciences Übung Objektorientierte Programmierung II Dipl.-Inf. (FH) Markus Vogler.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 1 Folie 2 Microsoft.NET Framework: Quelle:
Aufgaben Version 1: Es soll eine Wetterstation mit folgenden zwei Anzeigen implementiert werden: Aktuelle Wetterbedingungen mit Temperatur und.
EPROG Tutorium #4 Philipp Effenberger
EPROG Tutorium #5 Philipp Effenberger
EPROG Tutorium #3 Philipp Effenberger
Arrays und ArrayLists In JAVA.
Programmiervorkurs WS 2014 Referenzdatentypen
CuP - Java Achte Vorlesung Entspricht ungefähr Kapitel 4.1 des Skriptums Montag, 28. Oktober 2002.
Arrays und ArrayLists In JAVA.
Alois Schütte Advanced System Programming 2 Interprozeßkommunikation  2.1 JVM Ablaufumgebung  2.2 Java Native Interface (JNI)  Verwendung von.
OQL-Anbindung an Java (1) Java als Beispiel für die Einbettung von OQL in eine Programmiersprache Die OQL-Einbettung in Java ist teilweise mit dynamischem.
Java-Kurs - 3. Übung Hausaufgabe Arrays For-Schleifen.
Java-Applets und URLs APP Philip Graf, Andreas Bößl.
Java-Kurs Übung Besprechung der Hausaufgabe Listen und Mengen Komplexitäten Iteratoren (Durchlaufen von Listen/Mengen)
Java-AG Datenstreams: Dateibehandlung, Lesen aus und schreiben in eine Datei.
Java-Kurs Übung Besprechung der Hausaufgabe
IT2 – WS 2005/20061Nov 14, 2005 Visibility  public: Sichtbar in allen Paketen  protected: Sichtbar innerhalb des Pakets und in den Unterklassen  (default,
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 14. Vorlesung WS 2001/2002.
1 Servlets Stephan Baldes. 2 Was ist ein Servlet? S E R V L E T = Eine auf Java-Technologie basierte Web-Komponente, die von einem Container.
Strategy Pattern Teachlet Der nächste Auftrag Autor: Sven Wende Replay durch Stephan Schwake Konzepte objektorientierter Programmiersprachen, SS 2006.
Die STL. Schreiben und Lesen von Dateien  Einbinden von  Lesen und Schreiben über stream-Objekte Streams führen Transformationen zwischen Programmobjekten.
Java Programme nur ein bisschen objektorientiert.
Ein-/ Ausgabe in Java ein Überblick. © eigentlich ganz einfach ? Ein-/Ausgabe durch package java.io Ausgabe (auf Konsole) mit System.out.println()
1 Arrays und Schleifen Özgü & Tim. 2 Inhaltsverzeichnis Arrays Was ist ein Array? Bauanleitung Beispiel Matrix Fehler Schleifen Wofür Schleifen? While-Schleife.
Anforderungen an die neue Datenstruktur
File Objekt
Java-Kurs Übung Grafik in Java - das Abstract Windowing Toolkit
Zufall in Java Zwei Möglichkeiten.
Dynamisches Laden von Klassen
verkettete Strukturen
Thema 4: Klassenbibliothek
Raphael Fischer Informatik II - Übung 03 Raphael Fischer
Arrays in Java Ein Array ist eine Variable, die aus einer An-zahl von Elementen des gleichen Datentyps besteht, die aufeinanderfolgend im Speicher liegen.
Arrays in Java Ein Array ist eine Variable, die aus einer An-zahl von Elementen des gleichen Datentyps besteht, die aufeinanderfolgend im Speicher liegen.
Tutorstunde 10.
Felder in der Informatik
3. Die Datenstruktur Graph 3.2 Repräsentation von Graphen
 Präsentation transkript:

import java.util.*; Hilfsklassen, die man eigentlich immer braucht

© Überblick Hilfsklassen eher Teil der Sprache, als Bibliothek Collections Arrays Vector Hashtable Maps, Sets, Lists Iteratoren Date StringTokenizer Properties...

© Arrays enthalten feste (Maximal-) Zahl von Objekten Zugriff über Index (Start bei 0) String Names[] = new String[3]; Names[0] = new String("Max"); Names[1] = new String("Hugo"); Names[2] = new String("Albert"); for(int i=0;i<Names.length;i++) System.out.println(Names[i]); Arrays.sort(Names); for(int i=0;i<Names.length;i++) System.out.println(Names[i]); int idx = Arrays.binarySearch(Names,"Max"); System.out.println(idx);

© Kopieren von Arrays Das Array wird so nicht kopiert, nur die Referenz !! Alternativen: int a[] = {1,2,3,4,5}; int b[] = a; a b b = new int[a.length]; for(int i=0;i<a.length;i++)// langsam b[i]=a[i]; System.arraycopy(a,0,b,0,a.length);// schnell b = (int []) a.clone(); // Bitweise Kopie aus java.lang.Object

© Arrays unbekannter Größe ? Array wird einmal erzeugt hat dann feste Größe automatische Erweiterung nach Bedarf ? entweder selbst schreiben, oder java.util.Vector Vector V = new Vector(); // Initiale Kapazität 10 Vector V = new Vector(100); // Initiale Kapazitaet 100 V.add("Hallo"); V.add("Welt"); System.out.println(V.elementAt(1)); // Welt V.setElementAt(1,"World");

© Vector Wichtige Methoden add(Object) oder addElement(Object) hängt Objekt ans Ende an setElementAt(Object, Index) oder set(Index,Object) überschreibt Objekt an Position Index elementAt(Index) oder get(Index) gibt Element an Position Index zurück gibt ein Object zurück, deshalb normalerweise cast nötig size() liefert Anzahl der enthaltenen Objekte Iteration normalerweise: int size = V.size(); for(int i=0;i<size;i++) String s = V.elementAt(i);

© Wrapperklassen Vector (und andere Container, Ausnahme: Array) enthalten Objekte ist int ein Objekt ? NEIN !! Abhilfe Wrapperklassen Zu jedem primitiven Typ existiert eine Klasse Primitiver TypWrapperklasses booleanBoolean byteByte charCharacter doubleDouble floatFloat intInteger longLong shortShort

© Wrapperklassen contd. Verwendung V.add(new Integer(1)); V.add(new Integer(2)); System.out.println(V.elementAt(1)); // 2 V.setElementAt(new Integer(3),1); System.out.println(V.elementAt(1)); // 3 Weitere Anwendung: Konvertierung Integer I = new Integer("21"); int i = I.intValue(); String s = I.toString(); // kürzer: i = (new Integer("21")).intValue(); // noch kürzer i = Integer.parseInt("21"); Integer Fehler = new Integer("2x1"); // // wirft NumberFormatException

© Hashtable Vector: Index ist int, Hashtable: Index ist Object z.B. Zuordnung Name/Kundennummer Hashtable H = new Hashtable(); H.put("Müller",new Integer(4711)); H.put("Maier",new Integer(42)); System.out.println((Integer)H.get("Müller")); funktioniert mit beliebigen Objekten als Key/Value Prüfung, ob key enthalten mit contains(key) Liste der Keys/Values mit elements() bzw. keys() liefert Enumeration zurück

© weitere Map Interface ist Verallgemeinerung von Hashtable versch. Implementierungen, z.B. HashMap keine doppelten keys List Interface ist Verallgemeinerung von Vector versch. Implementierungen, z.B. ArrayList Zugriff über Index Set Interface ungeordnete Menge von Objekten Iterator Interface Zugriff auf Elemente for(Iterator i = c.iterator(); i.hasNext()) doSomething(i.next());

© Date Date D = new Date(); System.out.println(D); --> Tue May 15 19:49:05 GMT+02: System.out.println(D.toLocaleString()); --> :50:17 Ab JDK 1.1 deprecated, durch Calendar ersetzt Calendar cal = Calendar.getInstance(); cal.setTime(D); System.out.println(cal.get(Calendar.DAY_OF_MONTH)); Formatierung mit java.text.DateFormat

© StringTokenizer zerlegt String nachTrennzeichen StringTokenizer T = new StringTokenizer("Max,Hugo,Karl",","); while (T.hasMoreTokens()) { String s = T.nextToken(); System.out.println(s); } mehrere Trennzeichen möglich StringTokenizer T = new StringTokenizer("Max,Hugo,Karl",",.; \n\t"); Verzeichnisse aus Pfad extrahieren StringTokenizer T = new StringTokenizer("Max,Hugo,Karl","/\\"); Text in Wörter zerlegen StringTokenizer T = new StringTokenizer("Max,Hugo,Karl"," \t,.!-");

© Properties Liest Werte aus Konfigurationsdateien (property Dateien) Properties p = new Properties(); try { p.load(new FileInputStream("config.dat")); } catch (Exception e) { e.printStackTrace(); } System.out.println(p.getProperty("einwert")); // oder mit Default System.out.println(p.getProperty("nocheiner","irgendwas")); Für internationalisierte Programme mit java.util.ResourceBundle

© usw. Random Erzeugung von Zufallszahlen java.util.zip Verwaltung von ZIP Files java.text Internationalisierung java.net TCP/IP Networking usw ;-) Zunächst nachschauen, ob die Lösung für ein Problem nicht bereits da ist !!