举例说明
//筛选集合中满足要求的数据List<User> userList = new ArrayList<>();
User user1 = new User("cz1",18);
User user2 = new User("cz2",19);
User user3 = new User("cz3",20);
userList.add(user1);
userList.add(user2);
Stream<User> stream = userList.stream();//将list转为stream流
Stream<User> userStream = stream.filter(o -> o.getAge() > 19);//过滤流中满足要求的数据,生成新的流
List<User> collect = userStream.collect(Collectors.toList()); // 将过滤的流转为集合
分析filter()方法源码
//filter方法传入的是一个Predicate<T>接口的实现类Stream<T> filter(Predicate<? super T> predicate);
@FunctionalInterface //说明是个函数时接口,抽象方法接收一个对象,返回一个boolean值
public interface Predicate<T> {
boolean test(T t);
}
常用操作 数据操作
map 集合对象中的某个元素再转为集合
public static void testMap(List<User> userList){List<String> collect = userList.stream().map(o -> o.getName()).collect(Collectors.toList());//获取姓名集合
List<String> collect2 = userList.stream().map(User::getName).collect(Collectors.toList());//获取姓名集合
collect.forEach(o->System.out.println(o));//打印对象
}