September 05 Informatikunterricht 11-13 mit Java
1
Listen
September 05 Informatikunterricht 11-13 mit Java
2
Größe des Feldes
Datentypen
Was sind Listen?
int n = (int)(100*Math.random());Object[] feld = new Object[n];
Merkmale der Flexibilität:
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
3
4.1 Was sind Listen?
Implementieren Sie die Klasse ElementBenutzen Sie den JavaEditor (UML-Dioagramm Ein)
September 05 Informatikunterricht 11-13 mit Java
4
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; } }
Quelltext
September 05 Informatikunterricht 11-13 mit Java
5
Die abstrakte Liste
Mit dem Element kopf hat man die ganze Liste unter Kontrolle
haengeAn() hängt davon ab wie die Liste konkretisiert wird (LIFO –FIFO)
Klasse Liste ist abstrakt
Implementieren Sie die abstrakte Klasse Liste
September 05 Informatikunterricht 11-13 mit Java
6
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
7
Ü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(); }}