LinkedList迭代器next()即使在hasNext()返回true后调用,也不会引发任何TouchElementException。
环境:Sun Solaris上的Java6
知道为什么我在Next()方法调用时遇到这个异常吗?
// lines is an instance of LinkedList
// writer is a FileWriter, Believe that is irrelevant to issue
while(lines.hasNext()){
int i = 0;
do {
writer.write(lines.next());
writer.newLine();
i++;
} while (lines.hasNext() && i < targetLineCount);
// Some more code...
}
使用更多代码更新
public class MyClass { // Only one instance of this class is used across application
private List<String> master = new LinkedList<String>();
// Other instance members to tune this instance behaviour
public MyClass(){
// Read Source & populate master
}
public boolean writeDataSlot(Writer writer, int targetLineCount){ // Can be called by different Threads
Ierator<String> lines = master.iterator();
while(lines.hasNext()){
int i = 0;
do {
writer.write(lines.next());
writer.newLine();
i++;
} while (lines.hasNext() && i < targetLineCount);
// Some more code to populate slot from different source.
}
}
}
我看到了这些可能性:
行
已绑定到中的另一个实例//其他一些代码
正如Axel所指出的,这似乎是一个线程问题。
如果使此方法同步,会发生什么情况?
public synchronized boolean writeDataSlot(Writer writer, int targetLineCount)
将这些视为对象: 查看java文档,对于LinkedList类,LinkedList类中没有迭代器方法的实现,但是,实现是在AbstractSequentialList类中。 listIterator()方法在AbstractList类中实现,AbstractSequentialList的父类,总结一下,如果我没弄错的话,它返回一个不使用节点概念的迭代器对象。 但是方法是在LinkedList类中
问题内容: 这是我的代码。出于某种原因,如果我提交表单时未放置密码,则仍会创建数据库条目。整个代码中散布着一些注释,但是代码相当简单。有任何想法吗? 问题答案: 如果声明了变量,则仍然设置空字符串和/或空字符串。尝试这个:
我注意到以下场景中有一点奇怪的行为: 迭代器- 原始迭代器的hasNext()在已经返回false之后,会被额外调用一次。 这正常吗? 如果我删除map()或用类似count()或collect()的内容替换最终的itearator(),它将在没有冗余调用的情况下工作。 输出
问题内容: 我当前正在编写一个脚本,该脚本必须检查所有指定的文件夹是否实际存在。我发现我必须将os.path.isdir()与绝对路径一起使用。 我有以下目录结构: 当我打开op我的python命令行并尝试文件夹是否确实存在时,我得到以下信息: 这很奇怪,因为当我将这些路径复制并粘贴到Windows资源管理器中时,我可以毫无问题地访问它们。我检查了权限,所有文件夹都具有相同的权限。有人知道我在做什
问题内容: Python迭代器没有方法吗? 问题答案: 不,没有这样的方法。迭代结束由异常指示。请参阅文档。
我的理解是它需要检查,然后如果它是,则调用下一个方法来获取迭代器中的元素。 问题: 它在检索元素后调用,在我的例子中,使用Next检索最后一个元素并检查,然后返回并结束循环。所以我处理元素而不是元素。 或者,我使用了下面的代码。 复制代码: 输出: 缺少最后一个元素 它的工作原理类似于for循环,在Java API中,在文档中说hasNext和next是误导性的。 什么相当于Streams中的以下