Originariamente inviato da andbin
Visto che usi un ArrayList, l'unica sarebbe scansionare la lista tramite indice con un for "classico".

Se si usa un Iterator esplicitamente o implicitamente (tramite for-each) c'è il problema che ho descritto prima. Dal momento in cui viene creato l'oggetto Iterator fino alla fine della iterazione l'unica modifica possibile è tramite il remove() dell'Iterator.
Purtroppo anche qui ci sta un problema:
codice:
//Metodo che cancella un elemento(vincolo:l'elemento deve esistere nella lista)
	public void cancella(String nome){
		boolean presente = false;
		for (int i = 0;i < contatti.size()-1;i++){
			if(nome.equals(contatto.getNome())){
				System.out.println("Il nome " + nome + " verrà cancellato");
				presente = true;
			}
		}
		if (presente == false){
			System.out.println("Il contatto "+ nome +" non verrà cancellato perchè non è presente nella lista");
		}

	}
Ora contatto non può essere risolto!
Eppure la scansione viene fatta con un ciclo for normale.