Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hi!
Ich soll ein array mit daten füllen, das array sieht so aus
Java:
String[][] tabelle = new String [0][0];
soll also am Anfang eine leere Tabelle sein! Nun muss ich kucken wenn ich einen Wert an [6][6] speichern soll ob mein aktuelles array zu klein/zu groß etc ist.
Java:
public void setValue(int row, int column, String value) {
String[][] neuesArray = new String[row + 1][column + 1];
// neuesArray ist kleiner oder gleich gross
if (neuesArray.length <= this.tabelle.length && neuesArray[0].length <= this.tabelle[0].length) {
// value auf die Position setzen
this.tabelle = new String [row + 1][column + 1];
this.tabelle[row][column] = value;
}
//neuesArray hat mehr Zeilen und Spalten
else if (neuesArray.length > this.tabelle.length && neuesArray[0].length > this.tabelle[0].length) {
String[][] sicherungskopie = this.tabelle.clone(); //altes array sichern
this.tabelle = new String[row + 1][column + 1]; //goessere Tabelle
for (int x = 0; x < sicherungskopie.length + 1; x++) {
for (int y = 0; y < sicherungskopie[0].length; y++) {
this.tabelle[x][y] = sicherungskopie[x][y];
}
}//altes array übertragen
this.tabelle[row][column] = value; //neuen wert eintragen
}
Ich überprüfe also immer die Größen, allerdings stimmen i-wie meine if-Abfragen nicht sodass ich immer eine ArrayIndexOutofBound bekomme!
Ja ok, das klingt sehr logisch und ist wahrscheinlich ein sehr einfacher Fehler, allerdings steht bei meinem Konstruktor ich soll eine leere Tabelle initialisieren!
Ich habe also keine Größe des Arrays gegeben, es soll aber eine leere Tabelle darstellen.
Java:
// neue leere Tabelle als Klassenvariable und char trennzeichen
String[][] tabelle = new String [0][0];
char trennzeichen;
// Initialisiert eine leere Tabelle und setzt als Trennzeichen das Komma.
public CsvTable() {
this.tabelle = new String [0][0]; //keine Tabelle
this.trennzeichen = ',';
}
Ich nehme mal an, mit leere Tabelle ist laut Aufgabe nicht gemeint, dass sie Null Elemente groß sein soll, sondern dass sie nur Standardwerte (null z.B.) beinhalten darf, also noch keine Werte beinhaltet. Die Größe solltest du schon angeben.
EDIT: Eine Tabelle der Größe 0x0 dürfte ferner auch genau 0 praktischen Nutzen haben, da du die Größe eines Arrays nicht verändern kannst, zumindest nicht einfach vergrößern...
Naja, dein Array ist 0 groß und mit dem Index(0) möchtest du auf die erste position vom Array zugreifen, aber die gibt es ja nicht, weil dein Array 0 groß ist.
Aber genau das hat dir bygones schon gesagt