###三种情况:
执行for循环的时候:
1、list为null时空指针异常
2、list不为空,但是list.size()=0时,不执行for循环内代码块
3、list.size()>0,执行for循环,但循环的对象可能为null
public class Test {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
for ( String str : list) { //不执行
System.out.println("11");
}
for (int i = 0; i < list.size(); i++) { //不执行
System.out.println("22");
}
list.add("1");
list.add("2");
list.add(null);
list.add("3");
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i)); //i=2的时候输出null
}
list = null;
for ( String str : list) { //报异常
System.out.println("11");
}
for (int i = 0; i < list.size(); i++) { //报异常
System.out.println("22");
}
}
}
*** list集合判空**:
if(list != null && !list.isEmpty()){ 这个里面取list中的值}
else{ 做其他处理}
注:非常好用的工具类 CollectionUtils.isNotEmpty(List) 兼顾了非空和null的判断
public static boolean isEmpty(Collection coll) {
return (coll == null || coll.isEmpty());
}