Java/List: Unterschied zwischen den Versionen
main>Ugh (Zentralabi Listen und Problem) |
main>Ugh (→Wahrscheinlich falsche Interpretation: Neue Version) |
||
Zeile 4: | Zeile 4: | ||
===Wahrscheinlich falsche Interpretation=== | ===Wahrscheinlich falsche Interpretation=== | ||
<java> | <java> | ||
// zu den Vorgaben | |||
// vgl. http://www.u-helmich.de/inf/BlueJ/kurs121/seite15/abi-list.html | |||
// Kleine Referen ArrayList | |||
// http://www.u-helmich.de/inf/BlueJ/kurs11/seite06/arrayList.html | |||
// Sun Referenz | |||
// http://java.sun.com/j2se/1.3/docs/api/java/util/ArrayList.html | |||
import java.util.ArrayList; | import java.util.ArrayList; | ||
Zeile 13: | Zeile 20: | ||
liste = new ArrayList(); // die Liste ist leer | liste = new ArrayList(); // die Liste ist leer | ||
positionszeiger=-1; // der Positionszeiger steht vor der Liste | positionszeiger=-1; // der Positionszeiger steht vor der Liste | ||
insertBehind("Element a"); | |||
insertBehind("Element b"); | |||
insertBehind("Element c"); | |||
insertBehind("Element d"); | |||
} | } | ||
Zeile 22: | Zeile 33: | ||
public void insertBehind (Object pObject){ | public void insertBehind (Object pObject){ | ||
liste.add(positionszeiger+1, pObject); | liste.add(positionszeiger+1, pObject); | ||
positionszeiger+= | } | ||
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); | |||
} | |||
} | } | ||
Version vom 28. August 2006, 10:14 Uhr
Erster Implementierungsansatz
- ??? Wahrscheinlich ist das Positionszähler nicht so gemeint. Er soll anscheinend selbst ein Listenelement sein. Besitzt jemand einen stimmige Quelltext?
Wahrscheinlich falsche Interpretation
<java> // zu den Vorgaben // vgl. http://www.u-helmich.de/inf/BlueJ/kurs121/seite15/abi-list.html // Kleine Referen ArrayList // http://www.u-helmich.de/inf/BlueJ/kurs11/seite06/arrayList.html // Sun Referenz // http://java.sun.com/j2se/1.3/docs/api/java/util/ArrayList.html
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