Verteilte Software - Java - Utilities 1 // Aufzaehlungschnittstelle import java.util.*; public class ArbRaum Zimmer 104: { public static void main (String args[]) { AR zi104 = new AR(3); Meier zi104.add_ak(0, "Meier"); Schulze zi104.add_ak(2, "Schulze"); System.out.println("Zimmer 104:"); for ( Enumeration e = zi104.elements(); e.hasMoreElements(); ) { System.out.println(' ' + ((APlatz)e.nextElement()).getPerson() ); } } class AR_Enumerator implements Enumeration } { APlatz all[]; class AR int pos; { APlatz ap[]; AR_Enumerator(AR araum) { all = araum.ap; pos = 0; } AR (int anz) public boolean hasMoreElements() { ap = new APlatz[anz]; { while ((pos < all.length) && for (int i = 0; i<anz; i++) (all[pos].getPerson().equals("") )) pos++; ap[i] = new APlatz(); } return pos < all.length; } void add_ak(int index, public Object nextElement() String name) { if (pos < all.length) return all[pos++]; { ap[index].setPerson(name);} else throw Enumeration elements() new NoSuchElementException("AR_Enumerator"); {return new AR_Enumerator(this);} } } } class APlatz { private String name; APlatz () {name = "";} void setPerson(String name){ this.name = name; } String getPerson(){ return name; } } Prof. Dr.-Ing. habil. B. Steinbach - Informatik / Softwaretechnologie und Programmierungstechnik - Institut für Informatik Verteilte Software - Java - Utilities 2 // Aufzaehlungschnittstelle - Vector import java.util.*; public class ArbRaum_v { public static void main (String args[]) { Vector zi104 = new Vector(10); APlatz_v ap; ap = new APlatz_v(); ap.setPerson("Meier"); zi104.addElement(ap); zi104.addElement(new APlatz_v("Schulze")); System.out.println("Zimmer 104:"); for ( Enumeration e = zi104.elements(); e.hasMoreElements(); ) { System.out.println(' ' + ((APlatz_v)e.nextElement()).getPerson() ); } } } class APlatz_v { private String name; APlatz_v () { this(""); } APlatz_v (String name){ this.name = name; } void setPerson(String name){ this.name = name; } String getPerson(){ return name; } } Zimmer 104: Meier Schulze Prof. Dr.-Ing. habil. B. Steinbach - Informatik / Softwaretechnologie und Programmierungstechnik - Institut für Informatik Verteilte Software - Java - Utilities 3 class APlatz_h // Aufzaehlungschnittstelle - Hashtable { private String vname; import java.util.*; private int alter; public class ArbRaum_h APlatz_h () { this("", 0); } { public static void main (String args[]) APlatz_h (String vname, int alter) { String namen[] = new String[] { this.vname = vname; {"Meier", "Schulze", "Huhn", "Mustermann"}; this.alter = alter; Hashtable zi104 = new Hashtable(); } APlatz_h ap; void setPerson(String vname, zi104.put("Schulze", new APlatz_h("Petra", 17)); int alter) ap = new APlatz_h(); { this.vname = vname; ap.setPerson("Dieter", 25); zi104.put("Meier", ap); this.alter = alter; zi104.put("Mustermann", new APlatz_h("Franz", 35)); } System.out.println("Zimmer 104:"); String getVName(){ return vname; } for ( Enumeration e = zi104.elements(); int getAlter(){ return alter; } e.hasMoreElements(); ) } { ap = (APlatz_h)e.nextElement(); System.out.println (' ' + ap.getVName() + " ist " + ap.getAlter() + " Jahre alt"); } System.out.println("Suche:"); Zimmer 104: for (int i = 0; i < namen.length; i++) Dieter ist 25 Jahre alt { ap = (APlatz_h)zi104.get(namen[i]); Franz ist 35 Jahre alt if (ap != null) System.out.println (ap.getVName() Petra ist 17 Jahre alt + ' ' +namen[i] + " ist " Suche: + ap.getAlter() + " Jahre alt"); Dieter Meier ist 25 Jahre alt else System.out.println("Nicht gefunden: "+namen[i]); Petra Schulze ist 17 Jahre alt } Nicht gefunden: Huhn } Franz Mustermann ist 35 Jahre alt } Prof. Dr.-Ing. habil. B. Steinbach - Informatik / Softwaretechnologie und Programmierungstechnik - Institut für Informatik Verteilte Software - Java - Utilities 4 // Zerlegung von Zeichenketten import java.util.*; Text 1: Mit JAVA public class Token kann { public static void main (String args[]) man { gut String Text = "Mit\tJAVA\tkann man gut programmieren."; programmieren. String Formel = "y=sin(k*x)"; Text 2: StringTokenizer st; Mit JAVA System.out.println("Text 1:"); for (Enumeration e = new StringTokenizer(Text); e.hasMoreElements(); ) kann { man System.out.println( e.nextElement() ); gut } programmieren System.out.println("Text 2:"); Formel: for (st = new StringTokenizer(Text," \t."); st.hasMoreElements(); ) y { System.out.println( st.nextElement() ); = } sin System.out.println("Formel:"); ( st = new StringTokenizer(Formel," ()=*+-/%", true); k while( st.hasMoreTokens() ) * { x System.out.println( st.nextToken() ); } ) } } Prof. Dr.-Ing. habil. B. Steinbach - Informatik / Softwaretechnologie und Programmierungstechnik - Institut für Informatik