Double Werte übergeben funktioniert nicht

Hallo,
undzwar möchte ich aus einer Tabellenspalte double-Werte auslesen und diese in einem Array speichern.

Das Problem ist nur, dass das Array 52 Felder besitzt, die Tabelle aber eine variable Anzahl hat. Die übrigen Felder sollen mit Nullen aufgefüllt werden.

Der praktische Hintergrund:
Es sollen aus einer Tabelle Umsatzzahlen der verschiedenen Wochen ermittelt werden, an manchen Wochen fällt kein Umsatz an, wodurch diese Woche auch nicht in der Tabelle vorkommt (daher variabel). Im Array soll jedoch von Beginn an der Index bei der ersten Woche beginnen.

Meine Ergebnisse bisher:
row: Arraystelle (von 0-52)
public static double getUmsatz(int row)
{
// wenn der Umsatz einer Woche 0 ist, übergebe 0
if((Double)((Umsatz)umsatz[row]).getUmsatz() == null)
return 0;

// wenn der Umsatz einer Woche != 0 ist, übergebe den Umsatz
else
return (Double)((Umsatz)umsatz[row]).getUmsatz();
}

Die Methode, die das Array pflegt:

private double[] umsatzBerechnen()
{
double umsatz[] = new double[53];
for (int row = 0; row

Als Ausgabe erhalte ich jedoch nur die vorhandenen Einträge driekt nacheinander in das Array, danach ein IndexOutOfBoundException, da bspw. nur 6 Tabelleneinträge vorhanden sind, das Array aber den 7. - 52. Eintrag ermitteln will.

Zudem stimmen die Wochen auch nicht mehr, da mir nun alle Tabelleneinträge direkt nacheinander in das Array gesetzt werden und nicht in Abhängigkeit der Woche. Wenn der erste Tabellenumsatzeintrag für die 40. Woche ist, soll dieser auch an die 40. Arraystelle und nicht auf die 0. Stelle.

Für Hinweise wäre ich sehr sehr dankbar!

Gruß MM

Hi,
wieso nutzt du dann keine Liste? Die ist auch variabel in der Größe. Und die Liste kannst du dann so durchlaufen:

List doubles = new ArrayList();
for (Double item : doubles){
 // Do something
}

Lg Knerd

Hi,

ich hab da gleich mal ganz viele Fragen. Aber mal Stück für Stück.

Das Problem ist nur, dass das Array 52 Felder besitzt, die Tabelle aber eine variable Anzahl hat. Die übrigen Felder sollen mit Nullen aufgefüllt werden.

Ein Array von Standard-Datentypen ist in Java IMMER mit 0 initialisiert, da muss man sich nicht weiter drum kümmern.

private double[] umsatzBerechnen()
{
double umsatz[] = new double[53];
for (int row = 0; row

was ist UmsatzTableModel für ein Objekt, warum ist sein getUmsatz(int row) static?

public static double getUmsatz(int row)
{
// wenn der Umsatz einer Woche 0 ist, übergebe 0
if((Double)((Umsatz)umsatz[row]).getUmsatz() == null)
return 0;

// wenn der Umsatz einer Woche != 0 ist, übergebe den Umsatz
//nicht wirklich… null!=0
else
return (Double)((Umsatz)umsatz[row]).getUmsatz();
}

Was tut Umsatz.getUmsatz()? Was gibt sie zurück? Warum muss es zu Double gecastet werden? Wieso wird gecastet, wenn sowieso nur die „Existenz“ geprüft wird? Soll sie null zurückgeben dürfen?

Gäbe Umsatz.getUmsatz() gleich was „vernünftiges“ zurück, müsstest du es nicht in eine extra Funktion auslagern.

Als Ausgabe erhalte ich jedoch nur die vorhandenen Einträge
driekt nacheinander in das Array, danach ein
IndexOutOfBoundException, da bspw. nur 6 Tabelleneinträge
vorhanden sind, das Array aber den 7. - 52. Eintrag ermitteln
will.

Das kann aber nicht an double umsatz[] liegen.

Zudem stimmen die Wochen auch nicht mehr, da mir nun alle
Tabelleneinträge direkt nacheinander in das Array gesetzt
werden und nicht in Abhängigkeit der Woche. Wenn der erste
Tabellenumsatzeintrag für die 40. Woche ist, soll dieser auch
an die 40. Arraystelle und nicht auf die 0. Stelle.

Das musst du deinem Tabellenauslese-Dingsi mitteilen.

Für Hinweise wäre ich sehr sehr dankbar!

Bitte sehr

Gruß MM

Viel Erfolg,
pg