meu professor usou uma estrutura for que até então não conhecia. Se trata de um forque varre uma lista a procura de objeto:
public void removeContato(String nome)
{
for (Contato contato : trabalho)
{
if(contato.getNome().equals(nome))
{
trabalho.remove(contato);
}
}
se o objeto for encontrado ele remove aquele item da lista “trabalho”.
[color=blue]Gostaria de saber como fazer esse for, (só esta parte for(Contato contato : trabalho), na maneira convencional, tipo for(int…). Talvez assim eu compreenda melhor essa estrutura do professor, pois não compreendi essa de “:” (dois pontos)[/color]
Esse for “diferente” é chamado de for-each. Ele percorre todos os elementos da coleção que está após os dois pontos e atribui o elemento atual para a variável que vem antes dos dois pontos. Se olharmos o seu código, ele está percorrendo a coleção trabalho e atribuindo o elemento atual para a variável contato. Por baixo dos panos o que ele faz é o seguinte:
Dá pra escrever esse for da maneira convencional, ficaria dessa forma (vou considerar que a coleção trabalho é uma implementação de List, um ArrayList, por exemplo):
for(int i = 0; i < trabalho.size(); i++) {
Contato contato = trabalho.get(i);
if(contato.getNome().equals(nome)) {
trabalho.remove(contato);
}
}
PS.: Sua implementação é perigosa. Ela remove itens da coleção enquanto está percorrendo ela, pode ser que seu código se comporte de maneira anormal por isso.
erico_kl
Para resolver isso faça o for com Iterator e remova o objeto do mesmo. Algo como:
Iterator<Contato> it = trabalho.iterator();
while (it.hasNext()) {
Contato contato = it.next();
if (contato.getNome().equals(nome))
it.remove();
}
JavaThai
Boa Tarde tomwel
Cara os exemplos passados acima já vão ajudar muito,mas eu vou te explicar um pouco da minha forma sobre o for-each Blz! 1:Tipo do Objeto 2:Variavel 3:Uma Collection For( (1)ObjetoCorinthians (2)jogadores : (3) CampeaoInvicto) Vc ira ler essa instrução assim!
Para cada elemento do TIPO (ObjetoCorinthians) que esteja DENTRO de (CampeaoInvicto) ADICIONE ele na [b]VÀRIAVEL (jogadores) que será do mesmo tipo do (ObjetoCorinthians) .
Eai a cada interação do for ele vai adicionando o elemento até que não existam mas nenhum,e dentro do corpo do for-each ele executa a ação que vc colocar para cada elemento.