Java/List: Unterschied zwischen den Versionen
Aus ZUM-Unterrichten
< Java
main>Ugh (→Probleme mit der Implementierung: Quiz mit Liste) |
main>Ugh (→Siehe auch: Abitur (NRW)) |
||
| Zeile 101: | Zeile 101: | ||
* [[Informatik]] | * [[Informatik]] | ||
* [[Programmiersprachen]] | * [[Programmiersprachen]] | ||
* [[Abitur (NRW)]] | |||
[[Kategorie:Informatik]] | [[Kategorie:Informatik]] | ||
Version vom 7. September 2006, 16:48 Uhr
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
