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
