Hallo,
ich wollte eine Klasse schreiben, die beliebige Objekte aufnehmen kann.
Wollte sie ändern mit einer ArrayList implementieren.
Problem ist allerdings, dass wohl die ich im Konstruktor in der "for-Schleife" als Spalte erzeuge, in der Methode "add" nicht mehr kennt. (Sind wohl vom garbage collector aufgelesen worden).
Wenn ich nämlich versuche in einer anderen Klasse (im selben Paket)
Matrix kostenmatrix = new Matrix(2,2);
kostenmatrix.add(0,1,new Integer(3));
auszuführen krieg ich diese Exception:
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 1, Size: 0
at java.util.ArrayList.add(Unknown Source)
Hier ist der Code:
import java.util.ArrayList;
import java.util.Iterator;
public class Matrix {
private int zeilenanzahl;
private int spaltenanzahl;
private ArrayList zeilen;
public Matrix(int zeilenanzahl, int spaltenanzahl){
this.zeilenanzahl = zeilenanzahl;
this.spaltenanzahl = spaltenanzahl;
zeilen = new ArrayList(zeilenanzahl);
for (int i=0; i<spaltenanzahl; i++){
zeilen.add(i,new ArrayList(spaltenanzahl));
}
}
public void add(int zeilenposition, int spaltenposition, Object o){
ArrayList spalten = (ArrayList)zeilen.get(zeilenposition);
spalten.add(spaltenposition,o);
}
public Object get(int zeilenposition, int spaltenposition){
ArrayList spalten = (ArrayList)zeilen.get(zeilenposition);
return spalten.get(spaltenposition);
}
}