No, il problema è un altro: tu usi la forma prefissa dell'operatore ++, questo genera l'errore. Prova così:
Questo perchè la forma prefissa agisce in modo decisamente diversa dalla forma suffissa:codice:for(int i = 0; i < listaCD.size(); i++){ confronto = (CD) listaCD.get(i); if(confronto.matchTitolo(titolo)) return confronto; } return null; } ...
La forma prefissa, prima incrementa la variabile, poi valuta l'espressione. Questo significa che al momento del test i vale (size - 1), poi viene incrementata i ed il controllo va avanti.
La forma suffissa, invece, agisce al contrario: prima valuta la variabile, poi essa viene incrementata.
Con quel codice, infatti, ti perde il primo valore della lista, ma tenta di recuperare quello oltre l'ultimo. A te serve il primo e non quello dopo l'ultimo (che è NULL)!
Ciao.![]()