Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java迭代器值维持_Java_Collections_Iterator_Set - Fatal编程技术网

Java迭代器值维持

Java迭代器值维持,java,collections,iterator,set,Java,Collections,Iterator,Set,我有一个非常基本的java迭代器场景……在这个场景中,我面临着以下关于找到迭代器工作的问题 迭代器逻辑迭代器在两个while循环中的值是否相同,或者它在第二个while循环中结束并变为null Set logSet=transactionLogMap.entrySet(); Iterator logIterator=logSet.iterator(); BigDecimal tempRegId=null; while (logIterator.hasNext()) { tempRegI

我有一个非常基本的java迭代器场景……在这个场景中,我面临着以下关于找到迭代器工作的问题

迭代器逻辑迭代器在两个while循环中的值是否相同,或者它在第二个while循环中结束并变为null

Set logSet=transactionLogMap.entrySet();
Iterator logIterator=logSet.iterator();
BigDecimal tempRegId=null;

while (logIterator.hasNext()) {
    tempRegId=(BigDecimal)logIterator.next();
}

if (someBoolean) {
     while (logIterator.hasNext()) {
         callsomeMethod(logIterator.next());
     }
}

它将在第二个循环之前结束,但不会变为null


对于
logIterator.hasNext()

,它只会返回
false
,这些将是不同的值。第二个循环返回
false

允许调用方在迭代期间使用定义良好的语义从基础集合中删除元素


您只是在重用旧的迭代器。一旦
hasNext()
返回
true
,他将继续这样做。你不会进入第二个循环

除此之外,学习使用新的
进行
构造

for(BigDecimal tempRegId : transactionLogMap.entrySet() {
}

为什么不自己测试一下并查看?for(条目tempRegId:transactionLogMap.entrySet()){