Mais de um next no iterator dar erro porq?

4 respostas
clovishn

ola pessoal, estou com dúvida nesse iterator, preciso pular uma iteração com o next, posso usar outro laço no lugar de iterator ???

exemplo :

for (Iterator it = colecao.iterator(); it.hasNext(); ) {

BlaBleBli obj = (BlaBleBli) it.next();if preciso pular obj atual com: it.next , mas dar erro !! <img src="https://cdn.jsdelivr.net/gh/twitter/twemoji@14/assets/72x72/f.pngrowning.png?v=9" title=":frowning:" class="emoji" alt=":frowning:">

}

erro:

04/04/2011 08:49:53 org.jdesktop.application.Application$1 run

GRAVE: Application class ontolog.OntoLogApp failed to launch

java.util.NoSuchElementException

at com.hp.hpl.jena.util.iterator.NiceIterator.ensureHasNext(NiceIterator.java:37)

at com.hp.hpl.jena.util.iterator.UniqueExtendedIterator.next(UniqueExtendedIterator.java:77)

at ontolog.OntoLogView.(OntoLogView.java:138)

at ontolog.OntoLogApp.startup(OntoLogApp.java:19)

at org.jdesktop.application.Application$1.run(Application.java:171)

at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)

at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:642)

at java.awt.EventQueue.access$000(EventQueue.java:85)

at java.awt.EventQueue$1.run(EventQueue.java:603)

at java.awt.EventQueue$1.run(EventQueue.java:601)

at java.security.AccessController.doPrivileged(Native Method)

at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:612)

at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)

at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

Exception in thread AWT-EventQueue-0 java.lang.Error: Application class ontolog.OntoLogApp failed to launch

at org.jdesktop.application.Application$1.run(Application.java:177)

at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)

at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:642)

at java.awt.EventQueue.access$000(EventQueue.java:85)

at java.awt.EventQueue$1.run(EventQueue.java:603)

at java.awt.EventQueue$1.run(EventQueue.java:601)

at java.security.AccessController.doPrivileged(Native Method)

at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:612)

at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)

at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

Caused by: java.util.NoSuchElementException

at com.hp.hpl.jena.util.iterator.NiceIterator.ensureHasNext(NiceIterator.java:37)

at com.hp.hpl.jena.util.iterator.UniqueExtendedIterator.next(UniqueExtendedIterator.java:77)

at ontolog.OntoLogView.(OntoLogView.java:138)

at ontolog.OntoLogApp.startup(OntoLogApp.java:19)

at org.jdesktop.application.Application$1.run(Application.java:171)

 14 more

CONSTRUÍDO COM SUCESSO (tempo total: 2 segundos)

4 Respostas

gerdec

cara você pode usar o for assim:

for(int i=0; i < colecao.size; i++){
// pulando a primeira interação que acontece com i igual a 0
  if(i == 1){
       pega elemento da segunda interação
    }
 }
Mikhas

O Iterator joga um erro quando você invoca “next” sem ter um proximo elemento.

Tchello

A Exception diz tudo:

Não há mais elementos, por isso quando você chama next ele lança exception.

clovishn

mestres em java !!!, sequinte :

DefaultMutableTreeNode noRaiz = new DefaultMutableTreeNode("Taxonomy");
     //**
    //*****
    DefaultMutableTreeNode noFilho;
    //******
    for (Iterator i = Log.listSubClasses(); i.hasNext(); ) {
        OntClass c = (OntClass) i.next();

        noFilho = new DefaultMutableTreeNode(c.getLocalName());
        noRaiz.add(noFilho);

        OntClass subLog = ontologia.getOntClass(camNS +c.getLocalName());

         if (subLog.hasSubClass()) { // se tem subitens
          for (Iterator y = subLog.listSubClasses(); y.hasNext(); ) {
              OntClass d = (OntClass) y.next();

              DefaultMutableTreeNode noFilho2 = new DefaultMutableTreeNode(d.getLocalName());
              noFilho.add(noFilho2);
          }
       
       //  i.next(); dar erro, meu objetivo de pular o proximo é para ele não repetir o item do tree que já foi criado como subitem, ou seja, para não criar na raiz também !
       }
    }

:frowning:

Criado 4 de abril de 2011
Ultima resposta 4 de abr. de 2011
Respostas 4
Participantes 4