Fre*_*rup 13 java iterator nosuchelementexception
我正在尝试使用迭代器在我的Logs列表中遍历列表.目标是搜索包含与新日志相同的语音,类型和日期的日志
但是,我在条件语句中得到了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);
}
}
Run Code Online (Sandbox Code Playgroud)
Sot*_*lis 45
您next()在一次迭代中调用了很多次,强制Iterator移动到不存在的元素.
代替
if (iterator.next().getPhonenumber() == phonenumber && iterator.next().getType() == type && iterator.next().getDate() == date)
{
updateLog(newLog, iterator.next().getId());
...
Run Code Online (Sandbox Code Playgroud)
使用
Log log = iterator.next();
if (log.getPhonenumber() == phonenumber && log.getType() == type && log.getDate() == date)
{
updateLog(newLog, log .getId());
...
Run Code Online (Sandbox Code Playgroud)
每次调用时Iterator#next(),它都会向前移动底层光标.
| 归档时间: |
|
| 查看次数: |
52182 次 |
| 最近记录: |