Java Iterator具有下一个奇怪的行为

时间:2017-06-06 11:41:17

标签: java iterator

我有以下代码:

  Set<OWLNamedIndividual> individuals = reasoner.getInstances( tClass, false ).getFlattened();
  for(OWLNamedIndividual it1 : individuals)
       {            
     NodeSet<OWLNamedIndividual> names = reasoner.getObjectPropertyValues( it1, obj1 ); 
         System.out.println(it1.getIRI().getShortForm() + " has objects:");
     for(Node<OWLNamedIndividual> it2: names)
         {           
          Iterator iter=it2.iterator();
          while(iter.hasNext())
           {                          
            System.out.print("\t");
            System.out.println(iter.next().toString()); 
               System.out.println(iter.hasNext());                    
           }
         }
       }

返回以下内容:

name has objects:
<http://www.test/#name>
     false
<http://www.test/#name2>
     false

内部hasNext接缝在外部不起作用。我需要检查最后一次迭代。这是什么问题?非常感谢。

1 个答案:

答案 0 :(得分:4)

这里没有问题。当您致电next()时,hasNext()的值可能会发生变化。通过它的最后一次将打印为false。在这种情况下,每个外部集合看起来每个只有一个元素。