Iterable接口中的forEach()方法
每当我们需要遍历Collection时,我们需要创建一个Iterator,其目的是迭代,然后我们在循环中为Collection中的每个元素提供业务逻辑。如果没有正确使用迭代器,会抛出异常ConcurrentModificationException。
Java 8在java.lang.Iterable接口中引入了forEach方法,这样在编写代码时我们只关注业务逻辑。 forEach方法将java.util.function.Consumer对象作为参数,因此它有助于将我们的业务逻辑放在我们可以重用的单独位置。让我们
通过简单的例子看看每个用法。
List();
for(int i=0; i<10; i++) myList.add(i);
//使用iterator
Iterator() {
public void accept(Integer t) {
System.out.println("forEach anonymous class Value::"+t);
}
});
//使用consumer 接口
MyConsumer action = new MyConsumer();
myList.forEach(action);
//使用lambda表达式
myList.forEach(System.out::println);