首页 > 编程语言 >java8 stream 用法

java8 stream 用法

时间:2023-02-02 19:12:44浏览次数:49  
标签:users Collectors 用法 collect User stream java8 user

 1   private List<User> users = Arrays.asList(
 2             new User("1001", "John", 16),
 3             new User("1002", "Carly", 17),
 4             new User("1003", "Tom", 11),
 5             new User("1004", "Mike", 11));
 6 
 7 
 8     private void lambdaFunctions() {
 9 
10         // 转为某一属性的集合
11         List<String> names = users.stream().map(User::getName).collect(Collectors.toList());
12 
13         // 转为以某一属性为key,另一属性为value的map
14         Map<String, Integer> idAgeMap = users.stream().collect(Collectors.toMap(User::getId, User::getAge));
15 
16         // 转为以某一属性为key,对象本身为value的map
17         Map<String, User> idUserMap = users.stream().collect(Collectors.toMap(User::getId, User -> User));
18 
19         // 转为以某一属性为key,对象本身的集合为value
20         Map<String, List<User>> idUsersMap = users.stream().collect(Collectors.groupingBy(User::getId, Collectors.toList()));
21 
22         // 过滤
23         List<User> users1 = users.stream().filter(user -> user.getAge() >= 16).collect(Collectors.toList());
24 
25         //过滤
26         List<User> users2 = users.stream().filter(user -> {
27             return user.getAge() < 16;
28         }).collect(Collectors.toList());
29 
30 
31         // A对象集合转为B对象集合
32         List<Person> persons = users.stream().map(user -> {
33             return new Person(user.getId(), user.getName(), user.getAge());
34         }).collect(Collectors.toList());
35 
36 
37     }

 

标签:users,Collectors,用法,collect,User,stream,java8,user
From: https://www.cnblogs.com/lovleo/p/17087110.html

相关文章

  • 序列化类常用字段和字段参数、序列化高级用法之source、序列化高级用法之定制字段的两
    目录1序列化类常用字段和字段参数1.1常用字段类1.2反序列化校验执行流程2序列化高级用法之source2.1序列化定制字段名字3序列化高级用法之定制字段的两种方式3.1Seri......
  • python之路62 drf从入门到成神 3 序列化类常用字段和字段参数、序列化高级用法之sour
    作业#原生的django中request中没有datafromdjango.shortcutsimportrender,HttpResponseimportjson#通过装饰器做,装饰器视图函数的,以后都会有requestdefwr......
  • vim基础用法
    如何退出Esc+:q(或者:wq,如果你改了东西要保存的话;:!q不保存,强制退出)讲个笑话:我用vim三年了,因为我到现在都不知道怎么退出!删除所有内容Esc+ggdG跳转到指定行E......
  • location.href的用法
    https://blog.csdn.net/qiushisoftware/article/details/80599547window.location.href:"url",在本页跳转到url所指的链接window.location.replace:"url",用新的url替换原......
  • 【Servlet】Response的OutputStream与Writer输出数据乱码的问题
      OutputStream输出中文数据乱码问题解决方式: packagecn.lsh.servlet;importjava.io.IOException;importjava.io.OutputStream;importjavax.servlet.Se......
  • 读Java8函数式编程笔记08_测试、调试和重构
    1. Lambda表达式的单元测试1.1. 单元测试是测试一段代码的行为是否符合预期的方式1.2. Lambda表达式没有名字,无法直接在测试代码中调用1.2.1. 将Lambda表达式放入......
  • 方法final参数java8感想
    今天看到Latke的demo里有final的形参,查了一下使用final参数的状态有两种:1.让接收项目的程序员知道这个变量不能修改2.这个参数不能被重新赋值java8中有一种方法引用......
  • DISP_FUNCTION用法
    DISP_FUNCTION(theClass,pszName,pfnMember,vtRetVal,vtsParams)参数theClass 类名。pszName扩展函数名。pfnMember成员函数名。vtRetVal指定函数的返回类......
  • lambda用法
    1.直接使用1lambda_add_ten=lambdax:x+12print(lambda_add_ten(6))#73print((lambdax,y:xifx>yelsey)(1,2))#22.与高阶函数配合使用1foo=[1......
  • 【Flink】详解StreamGraph
    【Flink】详解StreamGraph大家好,我们的gzh是朝阳三只大明白,满满全是干货,分享近期的学习知识以及个人总结(包括读研和IT),跪求一波关注,希望和大家一起努力、进步!!概述没有看上一......