eu tenho um iterador que vou precisar numa outra classe, para isso faço um método que retorna esse mesmo iterador… então eu fiz assim…
// Percorre a lista de arcos e retorna um iterador para os vérticespublicVertexIteratorgetEdgesIterator(){VertexIteratorvI=newVertexIterator();returnvI;}publicclassVertexIteratorimplementsIterator{Iteratorit=edges.listIterator();// testa se há seguintepublicbooleanhasNext(){return(it.hasNext());}// retorna o próximo elementopublicWeightedEdgenext(){return(WeightedEdge)it.next();}// remove um arcopublicvoidremove(){it.remove();}}
ele devia de mostrar todos os valores que fazer parte da lista… certo ?
e n é o k está acontecendo… ele apenas mostra 1 valor …e fica em loop infinito…
T
thingol
O seu problema é que está sempre criando uma nova instância de VertexIterator() a cada vez que se chama getEdgesIterator(). Isso faz com que ele sempre volte um novo listIterator() (veja a linha “edges.listIterator()”) que está inicializado com a primeira posição.
Uma forma boba de corrigir isso é fazer o seguinte:
mas eu tenho a Class Vertex Iterator noutra class como Inner class… n consigo criar nada do tipo vertex iterator nesta classe onde preciso deste código…