Guten Abend liebes Forum,
ich habe folgendes Problem, das ich alleine nicht gelöst bekomme.
Ich arbeite mit der folgenden Klasse ArrayList.java:
Edit:
Kleine Erklärung zur Klasse: Eine ArrayList besteht aus einem Array aus Integerzahlen. Für mein Problem ist eigentlich nur die Methode append(int newElement) wichtig. Diese Methode ergänzt ein Objekt der ArrayList um ein weiteres Element.
Nun habe ich zu Testzwecken eine Klasse ArrayListTest.java erstellt, um einige ArrayListen zu erstellen und den Code zu überprüfen. Die Klasse sieht wie folgt aus:
Allerdings bekomme ich in der Konsole für die Variable "wut" den Wert 0 ausgegeben, heißt, die Länge meiner Liste beträgt 0 und es wurden keine Elemente hinzugefügt.
Entweder ist die append(int newElement) Methode fehlerhaft oder meine ArrayList test wird nicht erstellt. Wie lautet die Lösung zu diesen Problem? Ich bin echt am verzweifeln... Freue mich über jede denkbare Hilfe.
Mit freundlichen Grüßen
Venom Ousz
ich habe folgendes Problem, das ich alleine nicht gelöst bekomme.
Ich arbeite mit der folgenden Klasse ArrayList.java:
Edit:
Kleine Erklärung zur Klasse: Eine ArrayList besteht aus einem Array aus Integerzahlen. Für mein Problem ist eigentlich nur die Methode append(int newElement) wichtig. Diese Methode ergänzt ein Objekt der ArrayList um ein weiteres Element.
Java:
public class ArrayList{
private int[] data;
public ArrayList(){
this.data = new int[0];
}
private ArrayList(int[] dataArg){
this.data = dataArg;
}
private void error(String errorMessage){
System.err.println(errorMessage);
}
public int length(){
return this.data.length;
}
public boolean isEmpty(){
return this.length()==0;
}
public int get(int index){
if (index <0 || index >= this.length()){
error("Unzulaessiger Index.");
return -1;
}
else{
return this.data[index];
}
}
public ArrayList append(int newElement){
if(newElement<0){
error("Unzulaessiges Element.");
return null;
}
int newLength = this.length()+1;
int[] newData = new int[newLength];
for(int i=0; i<this.length();i++){
newData[i]=this.get(i);
}
newData[newLength-1]=newElement;
return new ArrayList(newData);
}
public int head(){
if(this.isEmpty()){
error("Die Liste hat kein Element.");
return -1;
}
int head = this.get(0);
return head;
}
public ArrayList tail(){
if(this.isEmpty()){
error("tail: Die Liste hat kein Element.");
return null;
}
ArrayList result = new ArrayList();
for(int i=1; i<this.length();i++){
result=result.append(this.get(i));
}
System.out.println(result);
return result;
}
public ArrayList concat(ArrayList tail){
ArrayList result = this;
ArrayList remainder = tail;
while(!remainder.isEmpty()){
result=result.append(remainder.head());
remainder=remainder.tail();
}
return result;
}
public boolean compare(ArrayList that){
ArrayList remainderOfThis = this;
ArrayList remainderOfThat = that;
while(!remainderOfThis.isEmpty()&&!remainderOfThat.isEmpty()){
if(remainderOfThis.head()!=remainderOfThat.head()){
return false;
}
remainderOfThis=remainderOfThis.tail();
remainderOfThat=remainderOfThat.tail();
}
return remainderOfThis.isEmpty()&&remainderOfThat.isEmpty();
}
}
Nun habe ich zu Testzwecken eine Klasse ArrayListTest.java erstellt, um einige ArrayListen zu erstellen und den Code zu überprüfen. Die Klasse sieht wie folgt aus:
Java:
public class ArrayListTest {
public static void main(String[] args){
ArrayList test = new ArrayList();
test.append(1);
test.append(2);
test.append(3);
test.append(4);
int wut =test.length();
System.out.println(wut);
}
}
Allerdings bekomme ich in der Konsole für die Variable "wut" den Wert 0 ausgegeben, heißt, die Länge meiner Liste beträgt 0 und es wurden keine Elemente hinzugefügt.
Entweder ist die append(int newElement) Methode fehlerhaft oder meine ArrayList test wird nicht erstellt. Wie lautet die Lösung zu diesen Problem? Ich bin echt am verzweifeln... Freue mich über jede denkbare Hilfe.
Mit freundlichen Grüßen
Venom Ousz
Zuletzt bearbeitet: