Listen September 05 Informatikunterricht 11-13 mit Java 1 Was sind Listen? int n = (int)(100*Math.random()); Object[] feld = new Object[n]; Merkmale der Flexibilität: Datentypen Größe des Feldes Aber: Länge des Feldes kann sich später nicht mehr den Bedürfnissen anpassen. Ausweg: Datentyp Vector oder eben Listen September 05 Informatikunterricht 11-13 mit Java 2 4.1 Was sind Listen? Implementieren Sie die Klasse Element Benutzen Sie den JavaEditor (UML-Dioagramm Ein) September 05 Informatikunterricht 11-13 mit Java 3 Quelltext package listen; public class Element { protected Object wert; protected Element naechstes; public Element(){ wert = null; naechstes = null; } public Element(Object wert){ setWert(wert); naechstes = null; } public Object getWert() { return wert; } public void setWert(Object wert) { this.wert = wert; } public Element getNaechstes() { return naechstes; } public void setNaechstes(Element naechstes) { this.naechstes = naechstes; } } September 05 Informatikunterricht 11-13 mit Java 4 Die abstrakte Liste Mit dem Element kopf hat man die ganze Liste unter Kontrolle Implementieren Sie die abstrakte Klasse Liste haengeAn() hängt davon ab wie die Liste konkretisiert wird (LIFO –FIFO) Klasse Liste ist abstrakt September 05 Informatikunterricht 11-13 mit Java 5 Lösung: Quelltext von Liste package listen; public abstract class Liste { protected Element kopf; public Liste() { kopf = null; } public Object getKopfWert() { return kopf.getWert(); } public boolean isEmpty(){ return kopf == null; } public void loescheElement(){ if (!isEmpty()){ kopf = kopf.getNaechstes(); } } public abstract void haengeAn(Object wert); } September 05 Informatikunterricht 11-13 mit Java 6 Übung 26.3 und Lösung Implementieren Sie in der abstrakten Klasse Liste eine nicht abstrakte Methode gebeAus(): void, die die Werte aller Elemente einer Liste mit dem Kopf beginnend, ausgibt. Die Ausgabe soll im Windows Eingabefenster erfolgen. public void gebeAus(){ Element lauf = kopf; while(lauf != null){ System.out.println(lauf.getWert()); lauf = lauf.getNaechstes(); } } September 05 Informatikunterricht 11-13 mit Java 7