ListIterator... pq não funciona?

5 respostas
maresp
Estou tentando utilizar ListIterator para algumas LinkedList´s que eu tenho, porém não está funcionando pois ao chamar o método next() da minha classe não consigo me movimentar pela lista, pois ela fica sempre no mesmo elemento. Escreví um outro método next() em que fazia a lista se movimentar na "Oooonha" como diz o cv e funcionou! Mas estou inconformado por não ter conseguido utilizar um Iterator.
public class ModelAvaliacao {
    ...
    private Grupo grupo;
    private Questao questao;
    private LinkedList gs;
    private LinkedList qs;
    private LinkedList qsG;
    ...

    public boolean next() throws Exception {
        ListIterator qsGIterator = qsG.listIterator();
        ListIterator gsIterator = gs.listIterator();
        try {
            questao = (Questao)qsGIterator.next();
            return true;
        }
        catch(NoSuchElementException nse1) {
            try {
                grupo = (Grupo) gsIterator.next();
                QuestaoDAO questaoDAO = new QuestaoDAO(path);
                questaoDAO.conectar();
                qsG = questaoDAO.sel4Grupo(aval.getCodigo(), grupo.getCodigo());
                questaoDAO.desconectar();
                questao = (Questao) qsG.getFirst();
                return true;
            }
            catch(NoSuchElementException nse2) {
                return false;
            }
    }
}

Fiz algo errado???

5 Respostas

cv1

Use os idiomas da linguagem! :wink:

List list = new ArrayList(); for(Iterator i = list.iterator(); i.hasNext();) { String elem = (String) i.next(); ... }

maresp

o código que postei é um de várias tentativas, inclusive utilizando os idiomas…
O código roda sem problemas, mas não sei pq motivo o meu objeto ‘questao’ não é atualizado.

cv1

Bom… vamos lah… o que vc ta tentando fazer?

maresp

Seguinte,

Tenho uma estrutura de Grupos e Questões. Toda questão está associada a um grupo. Quero me movimentar pela estrutura de forma que percorra todas as questões de um grupo. Sendo a última questão de um grupo, então o grupo é incrementado e é selecionada a primeira questão do mesmo. Sucessivamente até o término das questões.
Olhe o código do meu primeiro post…

rodrigousp

Talvez O problema esteja na estrutura de dados.
Um outro approaching …
todo grupo tem um tamanho …
itere até o final do grupo …
feito isso … crie um novo grupo…
(quando termina essa iteração ?)

enquanto (continua iteração) {

Grupo grupo = novo grupo () ;

para (iterator = grupo.iterator(); iterator.temProximo();){

element = iterator.next();

faz alguma coisa com element;

}

}
Criado 9 de outubro de 2003
Ultima resposta 10 de out. de 2003
Respostas 5
Participantes 3