Java/List

Aus ZUM-Unterrichten

Erster Implementierungsansatz

  • ??? Wahrscheinlich ist das Positionszähler nicht so gemeint. Er soll anscheinend selbst ein Listenelement sein. Besitzt jemand einen stimmige Quelltext?

Mögliche Interüretation

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

Siehe auch