Java中List.forEach()方法使用

1、示例

// 创建集合
List<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
list.add("d");

//lambda表达式
//1、正常遍历
list.forEach(item->System.out.print(item));
//结果:abcd

//2、条件遍历
list.forEach(item->{
          
   
	if("b".equals(item)) {
          
   
		System.out.print(item);
	}
});
//结果:b

2、forEach()的实现

package java.lang;
import java.util.Iterator;
import java.util.Objects;
import java.util.Spliterator;
import java.util.Spliterators;
import java.util.function.Consumer;

public interface Iterable<T> {
          
   
    default void forEach(Consumer<? super T> action) {
          
   
        Objects.requireNonNull(action);
        for (T t : this) {
          
   
            action.accept(t);
        }
    }

    default Spliterator<T> spliterator() {
          
   
        return Spliterators.spliteratorUnknownSize(iterator(), 0);
    }
}

可以看到:forEach()方法是Iterable<T>接口中的一个方法。Java容器中,所有的Collection的子类(List、Set)会实现Iteratable接口以实现forEach()功能。forEach()方法的参数是Consumer类型,它是Java8新增的一个消费型函数式接口,其中的accept(T t)方法代表了接受一个输入参数并且无返回的操作。

经验分享 程序员 微信小程序 职场和发展