java for each 空的_使用foreach需要判空。

今天写代码的时候,需要遍历一个作为参数传递进来的容器,

当时顺手就加上了判空条件:

if(null==list)return;

后来就像,不知道遍历(foreach)有没有帮我做这个工作:

下面看实验结果:

public static voidmain(String[] args) {

List list =null;for(String s:list){

System.out.println(s);

}

}

运行时报空指针错误:

Exception in thread "main"java.lang.NullPointerException

at Test.main(Test.java:37)

说明在进行foreach遍历的时候,需要判空的。

下面看看foreach到底是怎么实现的:

foreach是在jdk 1.5版本后推出更优雅的遍历写法:

jdk1.5之前:

遍历数组:

1 for (int i=0;i

3 }

遍历容器:

while(list.iterator().hasNext()){//do something

}

jdk1.5之后:

for(String s:list){//do something

}

代码看起来优雅了许多。

那foreach是一个新的东西么?相对于以前的的for循环来说,到底哪个效率要高

你可能感兴趣的:(java,for,each,空的)