这段代码产生了一个无限循环:
for (String element : friendSet) {
resultNum ++;
System.out.println(" Result # " + resultNum + " = " + element);
System.out.print(" friendSet.size() = " + friendSet.size());
}
friendSet.size() = 2923,但结果不断攀升到数万,直到我强制停止程序。例如:
friendSet.size() = 2923 Result # 7652 = Charlie
friendSet.size() = 2923 Result # 7653 = Jamie
friendSet.size() = 2923 Result # 7654 = Smith
发生了什么事?
friendSet
是什么? - SLaksfriendSet
是您实现的Iterable
,而迭代器是您的#iterator()
方法返回的,但它已经损坏了。 - Marko Topolnikfor
循环等效方式,它应该表现出相同的行为:for (Iterator<String> i = friendSet.iterator(); i.hasNext(); ) { String element = i.next(); . . . }
- Ted Hopp