PDA

View Full Version : [JAVA]problema con metodo Add di lista


Dylan il drago
27-11-2009, 14:33
allora ho questo codice:

public void match() throws Exception{

double [][]j = new double[3000][132];
double keypoint[] = new double[134];
LinkedList<double[]> lista = new LinkedList<double[]>();
int i,k=0,g=0,l=0,u=0;
String val = "";
double[] test= new double[132];
FileInputStream f = new FileInputStream("/Users/loganwhitewolf/Tesi/workspace/immagini/img_sift1.txt");
do{
i = f.read();

if((char)i == ' ' ){

//j[k][g]=Double.parseDouble(val);
keypoint[g] = 0;
keypoint[g]=Double.parseDouble(val);

val="";
l = -1;
g++;
}

else
{
val = val + (char)i;
}




if((char)i == '\n')
{
lista.add(k,keypoint);
k++;
g=0;
val= "";
l = 0;
}


//System.out.print(test[]);


l++;

}while(i != -1);
test = (double[]) lista.get(1);
g=0;
while(g<132){
System.out.print(test[g]+ " ");
g++;}
System.out.print("\n");

f.close();
}


allora breve spiegazione:

prendo in input un file txt contenente circa 2000 righe dove ogni riga è formata da 130 valori.

L'obbiettivo è prendere queste righe e inserirle in un vettore da 130 valori, dato che non conosco il numero di righe per ogni file txt ho bisogno che la dimensione della struttura dati sia dinamica, per questo ho pensato a linkedlist di double[]..

il problema qual'è? semplice allora riesco per ogni riga a salvare i 130 valori nell'array ma quando vado a inserire questo array nella linkedlist ogni volta che lo inserisco mi sovrascrive il vecchio array, quindi alla fine nella linked list ho un solo elemento..

come fare? non capisco perchè mi sovrascrive sempre l'elemento..

nuovoUtente86
27-11-2009, 22:58
fondamentalmente tu riempi sempre lo stesso array di double, mentre lo devi riinizializzare quando passi alla riga successiva.