Iterator itr=s.iterator();
while(itr.hasNext())
{
if(itr.next()==null)
System.out.println();
else
{
ArrayList al2=(ArrayList)itr.next();
for(int i=0;i<al2.size();i++)
System.out.println(al2.get(i));
}
}
}//function close
在这里,我尝试将数组列表推入堆栈,但是当我尝试通过迭代访问它们时,没有任何内容被打印出来。
答案 0 :(得分:0)
如果没有看到您正在处理的输入,很难确定,但代码中的一个问题是使用itr.next()
。该方法将返回列表中的下一项并推进迭代器。因此,因为每个循环调用它两次,所以每次传递都会从列表中获取两个项目。您应该重新组织代码,这样您每次只能调用next()
次:
while (itr.hasNext()) {
ArrayList al2=(ArrayList)itr.next();
if (al2 == null) {
System.out.println("List contained null value");
}
for (Object obj: al2) {
System.out.println("List entry: " + obj);
}
}