Ho dato una "sistemata" al metodo rimuoviDuplicati. il quale scova tutti i duplicati e assegna il valore "true" per ogni duplicato trovato.codice:public static char[] rimuoviDuplicati(char[] unArray) { boolean[] bArray = new boolean[unArray.length]; for(int i = 0; i < unArray.length - 1; i++) { int j = i + 1; int n = j; for(j = n; j < unArray.length; j++) { if(unArray[i] == unArray[j]) { bArray[j] = true; } } } int count = 0; for(int i = 0; i < bArray.length; i++) { if(bArray[i] == false) { count++; } } char[] temp = new char[count]; //codice per riempire il nuovo Array return temp; }
Quindi nel caso sopra, l'array booleano diventa: {false, false,true,false,true true} il che è giusto
vengono contati quanti false ci sono (3) e da questi ho la dimensione del nuovo array. Unica cosa che (se il procedimento sopra è corretto) mi resta da fare è riempire il nuovo array.. ma per farlo che logica devo usare? Nel senso, quale/i array devo scorrere? Avevo pensato una maniera simile ma non funziona:
Grazie ancora per la disponibilitàcodice:for(int k = 0; k < bArray.length; k++) { if(bArray[k] == false) { for(int j = 0; j < temp.length; j++) { temp[j] = unArray[k]; } } }![]()

Rispondi quotando
