Java/List
Aus ZUM-Unterrichten
< Java
Erster Implementierungsansatz
- ??? Wahrscheinlich ist das Positionszähler nicht so gemeint. Er soll anscheinend selbst ein Listenelement sein. Besitzt jemand einen stimmige Quelltext?
Mögliche Interpretation
Realisiert mit ArrayList: <java> import java.util.ArrayList;
public class List { private ArrayList liste; private int positionszeiger;
public List(){
liste = new ArrayList(); // die Liste ist leer positionszeiger=-1; // der Positionszeiger steht vor der Liste insertBehind("Element a"); insertBehind("Element b"); insertBehind("Element c"); insertBehind("Element d");
}
public void insertBefore (Object pObject){
liste.add(positionszeiger, pObject); positionszeiger--;
}
public void insertBehind (Object pObject){
liste.add(positionszeiger+1, pObject);
}
public void update (Object pObject){
liste.set(positionszeiger, pObject);
}
public void delete (){
liste.remove(positionszeiger);
}
public void next(){
if (positionszeiger!=liste.size()) positionszeiger++;
}
public void previous(){
if (positionszeiger>-1) positionszeiger--;
}
public void toFirst(){
positionszeiger=0;
}
public void toLast(){
positionszeiger=liste.size()-1;
}
public Object getItem(){
if (liste.size()==0 || positionszeiger==-1 || positionszeiger>=liste.size()) return null; else return liste.get(positionszeiger);
}
public boolean isEmpty (){
return (liste.size()==0);
}
public boolean isBefore (){
return (positionszeiger<0);
}
public boolean isBehind (){
return (positionszeiger>=liste.size());
}
// nicht in den Vorgaben vorgesehener Zusatz public void gibAufKonsoleAus(){
if (liste.size()==0) System.out.println("Leere Liste"); else { System.out.println("\n*** Liste ***"); if (positionszeiger==-1) System.out.println("> -1"); for (int i=0; i<liste.size();i++){ if (i==positionszeiger) System.out.print("> "+i+":"); else System.out.print(" "+i+":"); System.out.println ((String) liste.get(i)); } if (positionszeiger>=liste.size()) System.out.print("> "+positionszeiger); }
}
} </java>
Probleme mit der Implementierung
- Hier sind offene Fragen und Kommentare zusammengefasst.
- Aufruf zur Diskussion
Anwendungsbeispiele
- Quiz mit Hilfe einer Liste + Arbeitsblatt