树的自下而上的顺序

时间:2018-03-20 15:21:14

标签: java casting

    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

在这里,我尝试将数组列表推入堆栈,但是当我尝试通过迭代访问它们时,没有任何内容被打印出来。

1 个答案:

答案 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);
    }
}