Calling remove no loop foreach em Java [duplicado]

Esta pergunta já tem uma resposta aqui:

Iterando através de uma coleção, evitando ConcurrentModificationException ao remover objetos em um loop 3 respostas

Em Java, é legal chamar remove em uma coleção ao percorrer a coleção usando um loop foreach? Por exemplo

List<String> names = ....
for (String name : names) {
   // Do something
   names.remove(name).
}

Como adendo, é legal remover itens que ainda não foram repetidos? Por exemplo

//Assume that the names list as duplicate entries
List<String> names = ....
for (String name : names) {
    // Do something
    while (names.remove(name));
}

questionAnswers(11)

yourAnswerToTheQuestion