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