IntelliJ 建议将 while 循环替换为 for 每个循环。为什么?

2022-09-01 18:29:03
    ArrayList<Object> list = new ArrayList<Object>();
    list.add(12);
    list.add("Hello");
    list.add(true);
    list.add('c');

    Iterator iterator = list.iterator();
    while(iterator.hasNext())
    {
        System.out.println(iterator.next().toString());
    }

当我在IntelliJ IDEA中输入此Java代码时,代码分析功能建议我将while循环替换为for each循环,因为我正在迭代集合。这是为什么呢?


答案 1

这是它希望你使用的内容:

for (Object o : list)
{
    System.out.println(o.toString());
}

这从Java 1.5开始就存在于该语言中,并且是惯用模式。仅当需要访问迭代器的其他方法(即 )时,才需要迭代器。remove()


答案 2

因为你不太可能犯错误,而且看起来更好;)

for( Object obj : list ) {
  System.out.println( obj.toString() );
}

推荐