Acerca da interface Iterator!

Alguem aqui podia me fornecer o código que é usado na interface Iterator (quero é os métodos hasNext() e next()).

davam-me uma grande ajuda…

Intéééééééé…

Um código que utilize iterator?

ArrayList<Integer> a = new ArrayList<Integer>(); Iterator<Integer> it = a.iterator(); while(it.hasNext()) { System.out.println(it.next()); }
Mas se o que você quer é o interior do próprio Iterator… isso você já tem no seu computador :smiley:

[quote=Gravitor91w]Um código que utilize iterator?

ArrayList<Integer> a = new ArrayList<Integer>(); Iterator<Integer> it = a.iterator(); while(it.hasNext()) { System.out.println(it.next()); }
Mas se o que você quer é o interior do próprio Iterator… isso você já tem no seu computador :smiley: [/quote]

mas é memo isso k eu kero e eu sei que tenho no meu pc mas eu tenho um trabalho d faculdade pa fazer em k eu tenho d criar o meu proprio iterator.
ajuda aí plz…

A implementação desses métodos vai depender da lista.
Visualize o códigos das listas e veja que é feito no método iterator() …

[quote=nbluis]A implementação desses métodos vai depender da lista.
Visualize o códigos das listas e veja que é feito no método iterator() …[/quote]

keria somente saber o código dos métodos hasNext() e next().

Como eu disse, esta implementação é feita em cada tipo de lista.
Normalmente é uma inner class que implementa iterator e retorna uma instancia dela.

Vá no código da lista e veja…

Procura os sources na pasta onde você instalou o Java SE, mas eles não são tão simples assim. O que seu professor pediu é meio estranho, tem certeza que foi isso que ele pediu?

Por Exemplo o ArrayList.
O iterator está implementado na AbstractList pai de arraylist.

Segue o código.
http://www.docjar.com/html/api/java/util/AbstractList.java.html

[quote]Como eu disse, esta implementação é feita em cada tipo de lista.
Normalmente é uma inner class que implementa iterator e retorna uma instancia dela.

Vá no código da lista e veja…[/quote]
Realmente, já tive que implementar um ArrayList em um trabalho, e fiz o iterator numa inner class.

Um pouco pra te ajudar:

next :
retorna o proximo objeto da lista e você incrementa um contador por exemplo

hasNext:
ele ve se tem outro objeto depois do ultimo visto use o contador para saber onde parou se tiver retorna true ou false se tiver chegado ao fim

[quote=Mark_Ameba]Um pouco pra te ajudar:

next :
retorna o proximo objeto da lista e você incrementa um contador por exemplo

hasNext:
ele ve se tem outro objeto depois do ultimo visto use o contador para saber onde parou se tiver retorna true ou false se tiver chegado ao fim
[/quote]

ya eu sei…

acerca disso d fazer em uma inner classe,…, podiam me explicar expondo código??

tks

Em pseudo-código

classe MyIterator que implementa Iterator

variavel inteira posicao e  maximo
lista com os objetos

inicio método next
retorna um objeto da lista com o indice da posicao
acrescenta um na posicao
fim do metodo next

inicio do metodo hashNext
se posicao for menor que o maximo retorna verdadeiro
falso caso contrario
fim do metodo hasNext

inicio metodo remove
retira o objeto da lista com indice da posicao
acrescenta um na posicao
fim do metodo remove

fim da classe MyIterator

[quote=NeoXBlast][quote=nbluis]A implementação desses métodos vai depender da lista.
Visualize o códigos das listas e veja que é feito no método iterator() …[/quote]

keria somente saber o código dos métodos hasNext() e next().[/quote]

hasNext como o nome indica pergunta ao iterador se existe um proximo elemento (tem proximo?)
next() devolde esse elemento. O normal é que o iterador começe antes do primeiro item e verifique o se o proximo indice existe ( comparando com o tamanho final) . Se existe ele aumenta um. Quando next é chamado é puxado esse valor. Algumas implementações esperam até que next seja chamado para aumentar um.

Pense que o iterador é uma forma de fazer for ( int i =0; i < size() ; i ++ ) que com iterator fica

for (Iterator it = lista.iterator();it.hasNext();){
Object elemento = it.next();
}

Esta forma é normalmente melhor que usando whle porque o iterador pertence aos escopo do for e quando acaba o for o iterador é destruido. Com while, o iterador fica na memoria até terminar o escopo onde o o while foi chamado.

O java 1.5 e superior entender que o codigo acima pode ser escrito simplesmente

for ( Object elemento : list ){

}

agradeço a todos as suas respostas, em principio consegui resolver o meu problema…

Mt obrigado a todos :wink: :wink: