Originariamente inviato da marcocsm
sono riuscito a trovare una soluzione
codice:
static void eliminaDuplicati(ArrayList<Integer> a) {
for (int i = 1; i <a.size(); i++) {
if (a.indexOf(a.get(i)) < a.lastIndexOf(a.get(i))) {
a.remove(a.lastIndexOf(a.get(i)));
i--;
}
}
}
Perché parti da i = 1?
Comunque un consiglio: migliora l'indentazione, usa dei nomi significativi e non compattare troppo le istruzioni.
Riscritto così non è molto più leggibile?
codice:
static void eliminaDuplicati(ArrayList<Integer> array)
{
for (int i = 0; i < array.size(); i++)
{
int firstIndex = array.indexOf(array.get(i));
int lastIndex = array.lastIndexOf(array.get(i));
if (firstIndex != lastIndex)
{
array.remove(lastIndex);
i--;
}
}
}