Il problema è sicuramente dovuto al fatto che nel codice iniziale si vede:
mentre nel codice poi postato successivamente di VoceArchivio/DVD/CD, si vede che non c'è un override di equals.codice:if(a.equals(v))
La serializzazione centra solo di "striscio". Siccome non hai fatto l'override di equals, resta quello in Object che si basa solo sulla "identità" degli oggetti. Fintanto che fai removeVoceArchivio(cd2); utilizzando lo stesso identico oggetto che hai inserito, nessun problema, lo trova (per Object è uguale essendo lo stesso oggetto).
Ma quando deserializzi, ottieni nuovi oggetti, e visto che hai tenuto il riferimento a cd2 .... questo non lo trova più.

Rispondi quotando