Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Christian Sauer Geändert vor über 7 Jahren
1
import java.util.*; Hilfsklassen, die man eigentlich immer braucht
2
© till.haenisch@gmx.de Überblick Hilfsklassen eher Teil der Sprache, als Bibliothek Collections Arrays Vector Hashtable Maps, Sets, Lists Iteratoren Date StringTokenizer Properties...
3
© till.haenisch@gmx.de 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);
4
© till.haenisch@gmx.de 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 1 2 3 4 5 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
5
© till.haenisch@gmx.de 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");
6
© till.haenisch@gmx.de 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);
7
© till.haenisch@gmx.de 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
8
© till.haenisch@gmx.de 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
9
© till.haenisch@gmx.de 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
10
© till.haenisch@gmx.de 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());
11
© till.haenisch@gmx.de Date Date D = new Date(); System.out.println(D); --> Tue May 15 19:49:05 GMT+02:00 2001 System.out.println(D.toLocaleString()); --> 15.05.2001 19: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
12
© till.haenisch@gmx.de 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,.!-");
13
© till.haenisch@gmx.de 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
14
© till.haenisch@gmx.de 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 !!
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.