lambada表达式对list对象操作
lambada表达式对list对象操作
- 条件过滤
- 分类
- 按实体类中某字段分类
- 分组后,统计每组中数据量
- 分组后,求出每组中某属性的平均值
- 分组,某属性求和
- 返回自定义实体类集合
- 取实体类某个值集合
- 获取符合条件的总数
- 求最小与最大,使用min max方法
- 去重
- 对流中所有的元素进行判断,只要有一个满足条件就返回true,都不满足返回false
- list转map
条件过滤
e.getOrderId() == byId.getId() 具体条件
List<Bean> collect = value.stream().filter(e -> e.getOrderId() == byId.getId()).collect(Collectors.toList());
分类
按实体类中某字段分类
可以自行组合字符串:x.getItemgroupSn() + “,” + x.getItemKey() ; map中key为分类字段类型
Map<String, List<Bean>> groupSiteNames = value.stream().collect(Collectors.groupingBy(Bean::getSite));
分组后,统计每组中数据量
Map<String, Long> count = value stream().collect(Collectors.groupingBy(Bean::getBillDateStr, Collectors.counting()));
分组后,求出每组中某属性的平均值
Map<String, Double> avg = value stream().collect(Collectors.groupingBy(Bean::getBillDateStr, Collectors.averagingDouble(Bean::getGoodAmount)));
分组,某属性求和
Map<String, Long> count = value stream().Collectors.summingDouble(Bean::getGoodAmount));
返回自定义实体类集合
List<NewBean> collect = value.stream().map(item -> {return new NewBean(item.getLon(),XX, XX...);}).collect(Collectors.toList());
或者:
.map(item ->new NewBean(item.getLon(), item.getLat(), item.getSort())).collect(Collectors.toList());
取实体类某个值集合
List<String> collect = value.stream().map(Bean::getAlarmId).collect(Collectors.toList());
获取符合条件的总数
long alert = value.stream().filter(e -> e.getStatus().equals("2")).count();
求最小与最大,使用min max方法
Bean bean = value.stream().filter(e -> e.getWarning() > 0).min(Comparator.comparingInt(Bean::getDepartId)).get();
去重
List<String> collect = value.stream().filter(e -> !"1".equals(e.getStatus())).map(Bean::getItemModel).distinct().collect(Collectors.toList());
对流中所有的元素进行判断,只要有一个满足条件就返回true,都不满足返回false
boolean a = value.steam().anyMatch(item -> item.getAge() > 35)
list转map
(k1, k2) -> k2 表示key相等时,新的值会覆盖旧的值 (k1, k2) -> k1 表示key相等时,新的值不会覆盖旧的值
Map<String, String> deptMap = value.parallelStream().collect(Collectors.toMap(Bean::getGridNo, Bean::getDeptCode, (k1, k2) -> k2));
lambada表达式对list对象操作相关推荐
- lambada表达式
lambda表达式 //C++ 11中的Lambda表达式用于定义并创建匿名的函数对象,以简化编程工作.Lambda的语法形式如下: //[函数对象参数](操作符重载函数参数)mutable或e ...
- Lambada表达式常用案例(技能题)
一:Lambada表达式的结构 1)Lambada表达式的结构我们可以看成三部分 () -> {},箭头左边是参数,右边是执行体,箭头是格式 二:使用案例(List为主的操作) 1)实体对象 @ ...
- JDK1.8之Lambada表达式一
一. lambada表达式简介 我们知道对于Java变量可以赋给其一个值,而如果想将"一块代码(一个完整的方法)"赋给一个Java变量,如下所示,怎么做呢? 你可能认为就是下面的方 ...
- lambada表达式总结
前言 作为jdk1.8的新特性,8的标准库都开始大量使用lambda表达式了,你有什么理由不去学习lambda,这么简洁,这么爽的一种编程方法,不学不觉得可惜吗? lambda即λ,是匿名函数的意思, ...
- 第十节 Java工具包-Collections 流--lambada表达式
collection为核心的接口,包含了多种不同类型的集合以及多种不同数据结构的实现的类 list set queue都是在collection接口下的所以都有.add()方法 package c ...
- Struts2框架--学习笔记(下):OGNL表达式、值栈操作、拦截器、struts2标签、文件上传
一.OGNL概述:OGNL是一种表达式 (1)在struts2中操作值栈数据. (2)一般把ognl在struts2中操作,和struts2标签一起使用操作值栈. (3)ognl不是strut2的一部 ...
- 2.cocos2dx 3.2中语法的不同之处,lambada表达式的使用和function和bind函数的使用
1 打开建好的T32 Cocos2dx-3.2的一个项目 2 设置Cocos显示窗口的位置是在AppDelegate.cpp中: 3 设置自适应窗口大小的代码是在上面的 ...
- Javascript 笔记与总结(2-3)Javascript 运算符、控制结构与对象操作
[连接运算符 + ] <script> console.log(1+2+'a'+3+4); </script> 输出: 3a34 [逻辑运算符]返回的是最早能判断表达式结果的那 ...
- C++/C--lambda表达式与函数对象【转载】
文章目录 1. 概念 2 lambda表达式 3 lambda新特性 3.1 lambda捕捉表达式 3.2 泛型lambda表达式 3.3 函数对象 4 函数适配器 5 绑定器(binder) 5 ...
最新文章
- 文件内容统计——Linux wc命令
- struts实战--登陆拦截器
- 002 Spring Restful案例
- mysql 分词搜索_实战 | canal 实现Mysql到Elasticsearch实时增量同步
- 深度学习(05)--典型CNN结构(VGG13,16,19)
- 构建可靠系统的原则与实践
- js 延迟几秒执行ifarme_Node.js调试之llnode篇
- PHP+MySql获取新添加记录的ID值
- Hdu4747 Mex 递推
- 最新版X-Helios、X-Medusa、X-Ladon、X-Argus逆向与风控分析
- 基于html5的五子棋游戏
- 【office相关】excel 中使用 switch函数
- c语言宏定义在预处理阶段,预处理和宏定义
- iOS GPUImage研究六:为视频添加图片水印
- 剁手党:过年想收快递!马云:照常送!最高补贴三千让快递员团圆
- Qt 可拖拽 大小可调 方框
- 蓝牙核心技术概述(四):蓝牙协议规范(HCI、L2CAP、SDP、RFOCMM)
- macbook air 只安装win7系统
- 计算机毕业设计django基于python学校在线打印系统
- DFD图转化成SD图
热门文章
- php冰蝎一句话,利用动态二进制加密实现新型一句话木马之PHP篇(转)冰蝎
- uniapp打包安卓apk增加推送UniPush工具hbuilder
- 哈尔滨星际探险机器人_[第26期]Jimu机器人星际探险
- xp如何配置信息服务器地址,xp如何配置信息服务器地址
- [C++教程①]--了解c语言以及第一行代码
- Spark入门-什么是Spark
- *.brd 文件 是用什么软件打开的?
- MooTools and Sizzle
- Word学习笔记-使用技巧
- require()------node js