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.
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.