hallo,
der Compiler gibt mir den Fehler aus, dass in den Methoden "boolean remove" und "boolean contains" das return statement fehlt.ich weiß leider nicht weiter.könnt ihr helfen?
der Compiler gibt mir den Fehler aus, dass in den Methoden "boolean remove" und "boolean contains" das return statement fehlt.ich weiß leider nicht weiter.könnt ihr helfen?
Java:
public class SimpleArrayList <E> {
public E[] data;
public int size;
public SimpleArrayList(int initialCapacity) {
this.data=(E[]) new Object[initialCapacity];
this.size=0;
}
public SimpleArrayList() { //wird keine initialCapacity angegeben, beträgt sie 10
this(10);
}
public void ensureCapacity(int minCapacity) { //gucken, ob genug Platz für neue
int oldCapacity=this.data.length; //Objekte vorhanden ist
if(minCapacity>oldCapacity) {
E[]oldData=this.data; //Zwischenspeichern der alten Daten
int newCapacity=(2*oldCapacity<=oldCapacity+10)?(2*oldCapacity):(oldCapacity+10); //boolean-true-false
if(newCapacity<minCapacity) { //falls immer noch zu klein
newCapacity=minCapacity;
}
this.data=(E[])new Object[newCapacity]; //Anlegen des neuen Feldes mit der neuen Kapazität
for(int i=0; i<oldCapacity; i++) { //Auffüllen des neuen Feldes mit den zwischenge-
this.data[i]=oldData[i]; //speicherten Werten
}
}
}
public void shiftRight(int index) { //Verschieben der Elemente nach rechts, z.B, wenn
for(int i=this.size; i>index; i--) { //ein Element an einen Index eingefügt werden soll,
this.data[i]=this.data[i-1]; //der bereits besetzt ist
}
}
public void shiftLeft(int index) { //Verschieben der Elemente nach links,
for(int i=index; i<this.size-1; i++) { //z.B., wenn ein Element gelöscht wurde
this.data[i]=this.data[i+1];
}
}
public void rangeCheck(int minIndex, int index, int maxIndex) { //Prüfung, ob die Liste überhaupt lang
if(index<minIndex || index>maxIndex) { //"||"=oder //genug ist für ein Element, das an
throw new IndexOutOfBoundsException(); //einen bestimmten Index eingefügt
} //werden soll
}
public void shrinkCapacity() { //Schrumpfen eines Feldes bei zu vielen freier Kapazität
int oldCapacity=this.data.length;
int newCapacity=oldCapacity;
if(oldCapacity-this.size>10) {
newCapacity=oldCapacity/2;
}
if(this.size<oldCapacity-10) {
newCapacity=oldCapacity/2;
}
if(newCapacity<oldCapacity) { //falls Feld kleiner geworden ist als Ursprungsfeld
E[]oldData=this.data; //Zwischenspeichern des alten Feldes
this.data=(E[])new Object[newCapacity]; //Anlegen neues Feld mit neuer Kapazität
for(int i=0; i<newCapacity; i++) { //Auffüllen des neuen Feldes
this.data[i]=oldData[i];
}
}
}
public boolean add(E o) { //Hinzufügen eines Elementes
if(o!=null) {
ensureCapacity(this.size+1); //this.size+1 = Index, an dem o eingefügt wird
this.data[this.size]=o; //Einfügen an Index
this.size++; //size wächst um 1 (für Abfrage nach size)
return true;
} else
return false; //z.B., falls Element leer war(null)
}
public boolean remove(E o) { //Entfernen des 1. Elements in der Liste,
for(int i=0; i<this.data.length; i++) { //das zu o inhaltsgleich ist
if(this.data[i]==o) {
this.data[i]=null;
shiftLeft(i);
this.size--;
return true;
} else
return false;
}
}
public boolean isEmpty() { //Überprüfung, ob Liste leer ist
return this.size==0; //true, wenn size=0
}
public int size() { //Abfragen der Anzahl der Elemente in der Liste
return this.size;
}
public boolean contains(E o) { //Überprüfung der Liste auf ein zu o inhaltsgleiches Objekt//true, wenn eines gefunden wurde
for(int i=0; i<this.data.length; i++) {
if(this.data[i]==o) {
return true;
} else
return false;
}
}
public E get(int index) { //Rückgabe des Elementes an bestimmten Index
rangeCheck(0,index,this.size-1);
return this.data[index];
}
public void add(int index, E o) { //Einfügen eines Elements an der Position Index
if(o!=null) {
rangeCheck(0,index,this.size);
ensureCapacity(this.size+1);
shiftRight(index);
this.data[index]=o;
this.size++;
}
}
public E remove(int index) { //Entfernen eines Elements an der Stelle Index
rangeCheck(0,index,this.size-1); //wenn Element an einem Index entfernt werden soll, der
E result=this.data[index]; //entweder nicht vorhanden oder nicht besetzt ist
shiftLeft(index);
this.size--;
return result; //hier wird dann nochmal angezeigt, welches Element entfernt wurde
}
}