我的ListIterator案例中没有打印出简历

时间:2015-12-27 16:56:52

标签: java

我已经编写了以下使用List Iterator函数的代码,为什么没有打印出结果,谁能告诉我有什么问题?谢谢。

import java.util.ArrayList;
import java.util.ListIterator;



public class MyTest {

    public static void main (String[] args){

        ArrayList<String> myList = new ArrayList<String>();
        myList.add("Apple");
        myList.add("Orange");
        myList.add("Banana");
        myList.add("Grape");
        myList.add("Water Melon");


        ListIterator<String> itr = myList.listIterator();

        while(itr.hasNext());
        System.out.println(itr.next());

        while(itr.hasPrevious());
        System.out.println(itr.previous());

    }

}

3 个答案:

答案 0 :(得分:3)

将while循环更改为:

while(itr.hasNext()) {
    System.out.println(itr.next());
}

while(itr.hasPrevious()) {
    System.out.println(itr.previous());
}

看看分号是如何存在的。

答案 1 :(得分:0)

  while(itr.hasNext());   // semilcolon here
  System.out.println(itr.next());

  while(itr.hasPrevious()); // semilcolon here
  System.out.println(itr.previous());

由于这些分号,while循环都有空语句。因此,您的代码无限运行。

使用{}作为循环。

答案 2 :(得分:0)

在其他答案中添加信息的另一件事是缩进是一个强大的工具。如果您的代码缩进正确,您可以通过查看代码缩进来证明出错。

这就是你所拥有的:

<div style="background: grey; padding: 10px;">

你可以看到两个语句都处于同一级别,如果第二个语句应该在while(itr.hasNext()); System.out.println(itr.next()); 循环中运行,它应该像这里一样深一层:

while

如果您在while(itr.hasNext()) System.out.println(itr.next()); 声明的末尾没有;,那么您将获得上述内容。