jdk8 新特性之 List / Map 循环

一、jdk8 List 循环

p = 每一次遍历出来的对象

 list.forEach(p -> {
        System.out.println(p);
 });

注意:当 list = null 时会抛出空指针异常 java.lang.NullPointerException,可使用 Optional 避免null 导致的NullPointerException,
如: Optional.ofNullable(list).orElse(new ArrayList<>()).forEach(p -> { System.out.println(p); });

二、jdk8 Map 循环

  map.forEach((k, v) -> {
        System.out.println(k + "=" + v);
  });

注意:当 map= null 时会抛出空指针异常 java.lang.NullPointerException,可使用 Optional 避免null 导致的NullPointerException,
如:Optional.ofNullable(map).orElse(new HashMap<>()).forEach((k, v) -> { System.out.println(k + "=" + v); });

三、Optional 避免null 说明

PS:
空指针异常是导致Java应用程序失败的最常见原因。以前,为了解决空指针异常,Google公司著名的Guava项目引入了Optional类,Guava通过使用检查空值的方式来防止代码污染,它鼓励程序员写更干净的代码。受到Google Guava的启发,Optional类已经成为Java 8类库的一部分。Optional实际上是个容器:它可以保存类型T的值,或者仅仅保存null。Optional提供很多有用的方法,这样我们就不用显式进行空值检测。
Optional.of()或者Optional.ofNullable():创建Optional对象,差别在于of不允许参数是null,而ofNullable则无限制。

参数不能是null

Optional optional1 = Optional.of(1);

参数可以是null

Optional optional2 = Optional.ofNullable(null);

参数可以是非null

Optional optional3 = Optional.ofNullable(2);

你可能感兴趣的:(jdk8,新特性)