Java/List: Unterschied zwischen den Versionen

Aus ZUM-Unterrichten
main>Ugh
(→‎Siehe auch: Abitur (NRW))
main>Ugh
Zeile 14: Zeile 14:
   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 58: Zeile 54:
   else return liste.get(positionszeiger);
   else return liste.get(positionszeiger);
}
}


public boolean isEmpty (){   
public boolean isEmpty (){   
Zeile 73: Zeile 67:
}
}


// 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>


}
;Korrekturen:
</java>
11.09. - insertBehind: Positionszeiger wird vor und zurück gestellt


==Probleme mit der Implementierung==
==Probleme mit der Implementierung==

Version vom 11. September 2006, 10:32 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

}

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());

}

} </java>

Korrekturen

11.09. - insertBehind: Positionszeiger wird vor und zurück gestellt

Probleme mit der Implementierung

Anwendungsbeispiele

Siehe auch