Java ARRAY Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException

dominiksa87

Newbie
Registriert
März 2014
Beiträge
3
Hallo zusammen,

habe ein Problem mit einem Array. Ich möchte das aus einer Datei eine Spalte 10 angesprochen wird. Das geht leider nicht.

Hier mein Code:


import java.io.IOException;

import com.gams.api.GAMSDatabase;
import com.gams.api.GAMSJob;
import com.gams.api.GAMSOptions;
import com.gams.api.GAMSParameter;
import com.gams.api.GAMSSet;
import com.gams.api.GAMSVariableRecord;
import com.gams.api.GAMSWorkspace;


public class BBOOSNS_OOS {

//Branch and Bound mit OOA und OOS


public static void berechnen(int n, int Shelfspace, int e, String pfad, String eingabedatei) {
GAMSWorkspace ws = new GAMSWorkspace();


double time = System.currentTimeMillis();
int examples=1000;
double delta = 1.0;

String[] Produkte = new String[ n ] ;

for (int i = 0; i< n; i++){
Produkte = "Pr" + String.valueOf(i);

}


double[] r = new double [n];
double[] c = new double [n];
double[] s = new double [n];
double[] v = new double [n];
double[] mu = new double [n];
double[] sigma = new double [n];
double[] x= new double [n];
double[][] A = new double [examples*n][];

double[] CR = new double[n];

double alpha_kj=delta/(n-1);


//System.out.println(data);
A=Misc_read_data_csv_file.main(n,Shelfspace,examples,pfad);



for (int j=1;j< n;j++){
r[j]=A[(e)*n+j][2];
c[j]=A[(e)*n+j][3];
s[j]=A[(e)*n+j][4];
v[j]=A[(e)*n+j][5];
mu[j]=A[(e)*n+j][6];
sigma[j]=A[(e)*n+j][7];
x[j]=A[(e)*n+j][10];

.......


Das ist die Fehlermeldung:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10
at BBOOSNS_OOS.berechnen(BBOOSNS_OOS.java:61)
at RunNS.main(RunNS.java:66)

Bezieht sich auf das x.

Wäre dankbar über Hilfe.

VG
 
Bitte
Code:
 verwenden, da besser lesbar!
Was ist Zeile 61? Anscheinen will er auf ein Element zugreifen das es nicht gibt.
Man beachte 10 == 9 in Arrays, da 0-9. Hast du mal versucht 11 statt 10 zu nehmen?
 
Zuletzt bearbeitet:
Arrays fangen bei 0 an. Wenn du auf das 10te Element zugreifen willst, nimmst du den Index 9. Sagt auch der Fehler. Array Index Out of Bounds heißt quasi array Überlauf.
 
Zeile 61 ist die mit dem x: x[j]=A[(e)*n+j][10];

Ich habe es schon mit 9 und 11 versucht. Wenn ich anstatt 10 die 11 nehme kommt der gleiche Fehler mit der 11. Bei 9 mit der 9;
Zur Vollständigkeit: int n =10;

Hab das int n=10 auch schon auf 11 erhöht, aber da taucht auch ein Fehler auf.

Keine Ahnung was ich machen soll
 
Kannst du nicht einfach die gesamte Klasse vernünftig in CODE Tags packen bzw. auf pastebin hinterlegen? Auf dieses Rumraten hat hier keiner Lust...
 
Vielen Dank, hab jetzt eine andere Lösung gefunden. Lese die Datei anders ein.
 
Zurück
Oben