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--;
        }
    }
}