cmq il problema è proprio il remove. perchè tornando al codice originario se elimino listanew.remove(i); funziona perfettamente , se lo metto da errore al primo if ma solo nel confronto del indice i-esimo e j-esimo.

come faccio