list.forEach()和list.stream().forEach()有什么区别呢?
下文笔者讲述list.forEach和list.stream().foreach()方法之间的区别说明,如下所示
list.forEach和list.stream().foreach()方法功能说明
两者的方法都是遍历对象
两者的方法都是接收一个accept()方法
list.forEach和list.stream().foreach()方法区别
list.forEach()当遇见null值时,立即报错
list.stream().foreach()
首先将list转换为stream后
然后使用foreach遍历对象
如果有null时,遍历完毕后,才会抛出异常
例:foreach示例
list.forEach()使用增强for循环
default void forEach(Consumer<? super T> action) {
Objects.requireNonNull(action);
for (T t : this) {
action.accept(t);
}
}
public class TestClass {
public static void main(String[] args) {
List<String> list = Arrays.asList("A", "B", "C", "D");
try {
list.forEach(item -> {
System.out.println(item);
list.remove(0);
});
} catch (Exception e) {
e.printStackTrace();
}
list.stream().forEach(item -> {
System.out.println(item);
list.remove(0);
});
}
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


