报java.util.NoSuchElementException错误,有可能就是Iterator导致的,这里展示一下我的问题。
错误代码:
while(tableNameIt.hasNext()){
for(LogsTableVO obj : tableList){
if(obj.getTableName().equals(tableNameIt.next())){
tableNameIt.remove();
}
}
}
错误原因:for循环的话其实多次调用了next()方法
该正后代码:
while(tableNameIt.hasNext()){
String name = tableNameIt.next();
for(LogsTableVO obj : tableList){
if(obj.getTableName().equals(name)){
tableNameIt.remove();
}
}
}
总结:循环中不能用多次(含)的next()方法,可能造成迭代器越界。
解决方法:将next()取出的数据先传给一个新的对象,用的时候再取出来。