lambda及stream学习 (2)

举例说明

//筛选集合中满足要求的数据      
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));//打印对象
}

 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzywxw.html