Sabemos que Iterator serve para pecorrer uma lista tipo ArrayList, mas tenho algumas duvidas:
Iterator<Contacto> it = listaFamilia.iterator(); - > vai servir para Criar um objeto iterator e vai referenciar o mesmo objeto de listaFamilia, tipo, tudo que acontecer com o iterator vai aconter com listaFamilia?
hasNext => sei que retorna um boolean, logo é importante para os laços while e for, para pecorrer a lista.
o iterator começa sem “posição”, ele começa “apontando” para nenhum objeto? ai quanto chama o metodo next dele é que ele aponta para o primeiro objeto é isso?
Acho melhor com o For para percorrer lista após Java 5:
for(Usuariou:lista){
System.out.println(u)
}
carlosmoreira
Primeiro.
Se vc não precisa remover algum dos elementos durante a iteração, não tem porque usar .iterator(), use o for aprimorado e seja feliz.
Mas quanto as suas perguntas:
vai servir para Criar um objeto iterator e vai referenciar o mesmo objeto de listaFamilia, tipo, tudo que acontecer com o iterator vai aconter com listaFamilia?
Como todos os Objetos, exceto as Strings, todas as referências apontadas para o mesmo objeto irão alterar o mesmo objeto.
hasNext => sei que retorna um boolean, logo é importante para os laços while e for, para pecorrer a lista.
true
o iterator começa sem “posição”, ele começa “apontando” para nenhum objeto? ai quanto chama o metodo next dele é que ele aponta para o primeiro objeto é isso?
mais ou menos.
o iterator refencia o seu objeto (lista), o .next() retorna o próximo objeto da lista, então escrever .next() é o mesmo que fazer .get(i) num for normal.
Sabemos que Iterator serve para pecorrer uma lista tipo ArrayList, mas tenho algumas duvidas:
(1) Iterator<Contacto> it = listaFamilia.iterator(); - > vai servir para Criar um objeto iterator e vai referenciar o mesmo objeto de listaFamilia, tipo, tudo que acontecer com o iterator vai aconter com listaFamilia?
hasNext => sei que retorna um boolean, logo é importante para os laços while e for, para pecorrer a lista.
(2) o iterator começa sem “posição”, ele começa “apontando” para nenhum objeto? ai quanto chama o metodo next dele é que ele aponta para o primeiro objeto é isso?
(1) É isso mesmo, e é por isso que é a forma preferida para remover elementos dessa coleção.
(2) Ele começa conceitualmente “uma posição antes da primeira posição”. É mais ou menos como você disse, ele não aponta para nenhum registro no começo.
Ou seja, você sempre precisa chamar hasNext para ver se há uma próxima posição, e “next” para pegar a primeira posição (nesse caso).