Rimuovere un elemento da una matrice (Java)

C'è un modo veloce (e bello) per rimuovere un elemento da un array in Java?

Non è possibile rimuovere un elemento da un array Java di base. Date invece un'occhiata ai vari Collections e ArrayList.

Commentari (8)

Una bella soluzione sarebbe quella di usare una Lista invece di un array in primo luogo.

List.remove(index)

Se dovete usare gli array, due chiamate a System.arraycopy saranno molto probabilmente le più veloci.

Foo[] result = new Foo[source.length - 1];
System.arraycopy(source, 0, result, 0, index);
if (source.length != index) {
    System.arraycopy(source, index + 1, result, index, source.length - index - 1);
}

(Anche Arrays.asList è un buon candidato per lavorare con gli array, ma non sembra supportare remove).

Commentari (1)

Certo, crea un altro array :)

Commentari (0)