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对象操作相关推荐

  1. lambada表达式

     lambda表达式 //C++ 11中的Lambda表达式用于定义并创建匿名的函数对象,以简化编程工作.Lambda的语法形式如下: //[函数对象参数](操作符重载函数参数)mutable或e ...

  2. Lambada表达式常用案例(技能题)

    一:Lambada表达式的结构 1)Lambada表达式的结构我们可以看成三部分 () -> {},箭头左边是参数,右边是执行体,箭头是格式 二:使用案例(List为主的操作) 1)实体对象 @ ...

  3. JDK1.8之Lambada表达式一

    一. lambada表达式简介 我们知道对于Java变量可以赋给其一个值,而如果想将"一块代码(一个完整的方法)"赋给一个Java变量,如下所示,怎么做呢? 你可能认为就是下面的方 ...

  4. lambada表达式总结

    前言 作为jdk1.8的新特性,8的标准库都开始大量使用lambda表达式了,你有什么理由不去学习lambda,这么简洁,这么爽的一种编程方法,不学不觉得可惜吗? lambda即λ,是匿名函数的意思, ...

  5. 第十节 Java工具包-Collections 流--lambada表达式

     collection为核心的接口,包含了多种不同类型的集合以及多种不同数据结构的实现的类 list  set queue都是在collection接口下的所以都有.add()方法 package c ...

  6. Struts2框架--学习笔记(下):OGNL表达式、值栈操作、拦截器、struts2标签、文件上传

    一.OGNL概述:OGNL是一种表达式 (1)在struts2中操作值栈数据. (2)一般把ognl在struts2中操作,和struts2标签一起使用操作值栈. (3)ognl不是strut2的一部 ...

  7. 2.cocos2dx 3.2中语法的不同之处,lambada表达式的使用和function和bind函数的使用

    1        打开建好的T32  Cocos2dx-3.2的一个项目 2        设置Cocos显示窗口的位置是在AppDelegate.cpp中: 3  设置自适应窗口大小的代码是在上面的 ...

  8. Javascript 笔记与总结(2-3)Javascript 运算符、控制结构与对象操作

    [连接运算符 + ] <script> console.log(1+2+'a'+3+4); </script> 输出: 3a34 [逻辑运算符]返回的是最早能判断表达式结果的那 ...

  9. C++/C--lambda表达式与函数对象【转载】

    文章目录 1. 概念 2 lambda表达式 3 lambda新特性 3.1 lambda捕捉表达式 3.2 泛型lambda表达式 3.3 函数对象 4 函数适配器 5 绑定器(binder) 5 ...

最新文章

  1. 文件内容统计——Linux wc命令
  2. struts实战--登陆拦截器
  3. 002 Spring Restful案例
  4. mysql 分词搜索_实战 | canal 实现Mysql到Elasticsearch实时增量同步
  5. 深度学习(05)--典型CNN结构(VGG13,16,19)
  6. 构建可靠系统的原则与实践
  7. js 延迟几秒执行ifarme_Node.js调试之llnode篇
  8. PHP+MySql获取新添加记录的ID值
  9. Hdu4747 Mex 递推
  10. 最新版X-Helios、X-Medusa、X-Ladon、X-Argus逆向与风控分析
  11. 基于html5的五子棋游戏
  12. 【office相关】excel 中使用 switch函数
  13. c语言宏定义在预处理阶段,预处理和宏定义
  14. iOS GPUImage研究六:为视频添加图片水印
  15. 剁手党:过年想收快递!马云:照常送!最高补贴三千让快递员团圆
  16. Qt 可拖拽 大小可调 方框
  17. 蓝牙核心技术概述(四):蓝牙协议规范(HCI、L2CAP、SDP、RFOCMM)
  18. macbook air 只安装win7系统
  19. 计算机毕业设计django基于python学校在线打印系统
  20. DFD图转化成SD图

热门文章

  1. php冰蝎一句话,利用动态二进制加密实现新型一句话木马之PHP篇(转)冰蝎
  2. uniapp打包安卓apk增加推送UniPush工具hbuilder
  3. 哈尔滨星际探险机器人_[第26期]Jimu机器人星际探险
  4. xp如何配置信息服务器地址,xp如何配置信息服务器地址
  5. [C++教程①]--了解c语言以及第一行代码
  6. Spark入门-什么是Spark
  7. *.brd 文件 是用什么软件打开的?
  8. MooTools and Sizzle
  9. Word学习笔记-使用技巧
  10. require()------node js