Sto provando a creare un metodo che prevede l'intersezione di due array con ripetizione.Intersezione di due array con ripetizione
Esempio: {1,2,5,4,1,3} and {1,2,1} -> {1,1,2}.
Ho un metodo che fa intersezione ma senza ripetizione.
public int[] findSameElements(int[] p1, int[] p2) {
int count = 0;
for (int i = 0; i < p1.length; i++) {
for (int j = 0; j < p2.length; j++) {
if (p1[i] == p2[j]) {
count++;
break;
}
}
}
int[] result = new int[count];
count = 0;
for (int i = 0; i < p1.length; i++) {
for (int j = 0; j < p2.length; j++) {
if (p1[i] == p2[j]) {
result[count++] = p1[i];
break;
}
}
}
return result;
}
Come posso aggiungere ripetizioni senza usare Arrays.*
o List.*
?
Hai provato a eseguire quel codice? Funziona bene per me. Restituisce '{1, 2, 1}'. Immagino che vuoi solo questo? –
Sei sicuro, non funziona per me. – Alex
Potrebbe non funzionare perché nel tuo primo ciclo for, hai usato 'p1b' invece di' p1'. -> 'for (int i = 0; i