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éééééééé…
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
[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 [/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