Java/List: Unterschied zwischen den Versionen

Aus ZUM-Unterrichten
main>Ugh
(Zentralabi Listen und Problem)
 
main>Ugh
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+=2;
}
 
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

Siehe auch