PDA

View Full Version : [JAVA] problema nella ricerca in un array di stringhe


DesmoColo
22-09-2004, 15:49
Devo implementare un algoritmo per fare una ricerca dentro un array di stringhe.
Ho un array di stringhe arrayProv contente 8314 elementi.
L'algoritmo confronta l'elemento i con gli elementi di un arraySingle, di uguale dimensione per assicurarsi che sia abbastanza grande da contenere tutti gli elementi da inserire e completamente vuuoto all'inizio della ricerca.
Se arrayProv[i] non è contenuto in ArraySingle, allora i viene copiato nella prima posizione libera di arraySingle, incrementa il contatore ContaSingle e ripete per il successivo i+1, altrimenti non succede nulla.
Spero di essere stato abbastanza chiaro nel presentare il problema.
Ho implementato il seguente algoritmo, ma non capisco dove sbaglio, mi potete aiutare?

/*arrayProv è già stato inizializzato precedentemente */

String[] arraySingle = new String[8314];


int contaSingle = 0;

for(int i = 0; i < arrayProv.length; i++){


for(int j = 0; j <= i; j++ ){

if(!(arrayProv[i]).equals(arraySingle[j])){

arraySingle[j] = arrayProv[i];
contaSingle++;
break;
}
}//end intern for

}//end extern for
System.out.println(contaSingle);
}

kingv
22-09-2004, 16:05
j contiene il contatore per ciclare sull'array degli elementi già trovati, non puoi fare:

arraySingle[j] = arrayProv[i];

altrimenti scrive sempre all'inizio di arraySingle



devi tenere un contatore per vedere dove sei arrivato a riempire arraySingle e liì mettere il nuovo elemento unico

marco.danese
22-09-2004, 16:39
Se ho capito il problema,secondo me dovresti provare con una diversa impostazione di ricerca.
Prova con una ricerca più semplice:

memorizza in una varibile temp la stringa da cercare e fai scorrere tutto l'array fino a quando non la trovi

/* var_temp=arr[i] */

oltre ad essere più semplice da implementare dovrebbe farti risparmiare qualche ciclo macchina