我正在尝试使用迭代器遍历我的日志列表。目标是搜索包含与新日志相同的电话号码、类型和日期的日志
然而,我在条件语句中得到了java.util.NoSuchElementException。有人知道问题的原因吗?
我的代码
public void addLog(String phonenumber, String type, long date, int incoming, int outgoing)
{
//Check if log exists or else create it.
Log newLog = new Log(phonenumber, type, date, incoming, outgoing);
//Log exists
Boolean notExist = false;
//Iterator loop
Iterator<Log> iterator = logs.iterator();
while (iterator.hasNext())
{
//This is where get the exception
if (iterator.next().getPhonenumber() == phonenumber && iterator.next().getType() == type && iterator.next().getDate() == date)
{
updateLog(newLog, iterator.next().getId());
}
else
{
notExist = true;
}
}
if (notExist)
{
logs.add(newLog);
}
}
您在一次迭代中多次调用next()
,迫使Iterator
移动到不存在的元素。
而不是
if (iterator.next().getPhonenumber() == phonenumber && iterator.next().getType() == type && iterator.next().getDate() == date)
{
updateLog(newLog, iterator.next().getId());
...
用
Log log = iterator.next();
if (log.getPhonenumber() == phonenumber && log.getType() == type && log.getDate() == date)
{
updateLog(newLog, log .getId());
...
每次调用Iterator#next()
时,它都会将底层光标向前移动。
问题内容: 我正在尝试使用迭代器遍历我的日志列表中的列表。目标是搜索包含与新日志相同的电话号码,类型和日期的日志 但是,我在条件语句中得到了java.util.NoSuchElementException。有谁知道可能导致问题的原因? 我的密码 问题答案: 您在一次迭代中调用了很多次,迫使移至一个不存在的元素。 代替 用 每次调用时,它都会向前移动基础光标。
我最近在做一个简单的项目文件读,写和比较字符串在核心Java。我使用StringTokenizer解析行中的每个元素。但是在这样做的时候,我遇到了以下错误消息。任何关于这方面的帮助,提前感谢。错误消息: 我的代码就像跟随; 和文件示例为:
本文向大家介绍在Java中迭代ArrayList,包括了在Java中迭代ArrayList的使用技巧和注意事项,需要的朋友参考一下 Java中的Iterator用于遍历集合中的每个元素。使用它遍历,获取每个元素,或者甚至可以从ArrList中删除元素。要使用迭代器遍历集合的内容,请首先通过调用集合的iterator()方法来获得一个迭代器,使其到达集合的开头。在那之后,建立一个循环来调用hasNe
在“掌握C++17 STL”一书中,我看到iterator和const_iterator在一个类中实现,使用条件来减少代码重复 下面是我对简单数组类的实现(跳过数组类的大部分代码): 这段代码编译时没有错误,但iterator有点不可用: 给出错误: 我该如何使用那个迭代器呢?还是我应该从书上放弃这个想法呢?
问题内容: 我正在浏览以下代码示例: 我想知道使用Iterator接口的实现而不是使用普通的for-each循环有什么好处? 如果此示例不相关,那么当我们应该使用Iterator时会是一个好的情况吗? 谢谢。 问题答案: 该 for-each循环 与Java 5中引入的,所以它不是那么“老”。 如果只想迭代一个集合,则应为每个循环使用 但是有时“普通的” 迭代器的 方法对于检查 迭代器 是否还有更
我是一个胡子新手,我想知道如何在这个地图上反复使用胡子 地图键名称各不相同。理想情况下,我希望mustache可以迭代其键和值。因此,在java中,它将如下所示: 所以有人能告诉我如何在小胡子中实现以上。我的意思是模板会是什么样子?我尝试了这个模板,但到目前为止还没有运气:( 所以当我运行这个模板时,输出
我知道这个问题在这个论坛上已经被问过好几次了。但我仍在发帖,因为没有一个答案看起来是具体的。专家们,你们能帮我理解什么时候使用迭代器吗。当我们有一个非常大的数据集时,我们是理想地使用它,还是当我们有大量数据要返回时,将其用作方法的返回类型?