java8快速实现分组、过滤、list转map
public class TestEntity {
private String c1;
private String c2; public TestEntity(){}
public TestEntity(String a,String b){
this.c1=a;
this.c2=b;
} public String getC1() {
return c1;
} public void setC1(String c1) {
this.c1 = c1;
} public String getC2() {
return c2;
} public void setC2(String c2) {
this.c2 = c2;
} public String toString(){
return "TestEntity{c1="+c1+","+"c2="+c2+"}";
} }
public class java8Test {
public static void main(String[] args){
TestEntity t1=new TestEntity("a","1");
TestEntity t2=new TestEntity("a","2");
TestEntity t3=new TestEntity("b","3"); List<TestEntity> list=new ArrayList<>();
list.add(t1);
list.add(t2);
list.add(t3); //1、分组
Map<String,List<TestEntity>> map=list.stream().collect(Collectors.groupingBy(TestEntity::getC1));//按照c1分组
System.out.println(map);
//{a=[TestEntity{c1=a,c2=1}, TestEntity{c1=a,c2=2}], b=[TestEntity{c1=b,c2=3}]} //2、List转Map
//如果有重复的key,则保留k1,舍弃k2。可以用(k1,k2)->k1来设置
Map<String,TestEntity> map1=list.stream().collect(Collectors.toMap(TestEntity::getC1,a->a,(k1,k2)->k1));
System.out.println(map1);
//{a=TestEntity{c1=a,c2=1}, b=TestEntity{c1=b,c2=3}} //3、过滤Filter
List<TestEntity> list1=list.stream().filter(a->a.getC1().equals("a")).collect(Collectors.toList());
System.out.println(list1);
//[TestEntity{c1=a,c2=1}, TestEntity{c1=a,c2=2}] //4、求和
//5、求最大值和最小值 }
}
java8快速实现分组、过滤、list转map的更多相关文章
- 6.组函数(avg(),sum(),max(),min(),count())、多行函数,分组数据(group by,求各部门的平均工资),分组过滤(having和where),sql优化
1组函数 avg(),sum(),max(),min(),count()案例: selectavg(sal),sum(sal),max(sal),min(sal),count(sal) from ...
- java8 快速实现List转map 、分组、过滤等操作
利用java8新特性,可以用简洁高效的代码来实现一些数据处理. 定义1个Apple对象: public class Apple { private Integer id; private String ...
- java8 快速入门 lambda表达式 Java8 lambda表达式10个示例
本文由 ImportNew - lemeilleur 翻译自 javarevisited.欢迎加入翻译小组.转载请见文末要求. Java 8 刚于几周前发布,日期是2014年3月18日,这次开创性的发 ...
- Java8——快速入门手册(学习笔记)
github博文传送门 Java8特性学习笔记 Java8中新增了许多的新特性,在这里本人研究学习了几个较为常用的特性,在这里与大家进行分享.(这里推荐深入理解Java 8用于理解基础知识)本文分为以 ...
- Java8中那些方便又实用的Map函数
原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处. 简介 java8之后,常用的Map接口中添加了一些非常实用的函数,可以大大简化一些特定场景的代码编写,提升代码可读性,一 ...
- Jenkins使用分组过滤分类
背景:Jenkins项目过多,通过选项卡的方式过滤需要的项目 1.点击选择卡上的加号 2.填写要分组的名字 3.可选择某个job进行分类,或者使用正则表达式的方式进行分类,楼主是根据正则进行匹配, 4 ...
- Java8 使用 stream().filter()过滤List对象(查找符合条件的对象集合)
内容简介 本文主要说明在Java8及以上版本中,使用stream().filter()来过滤一个List对象,查找符合条件的对象集合. List对象类(StudentInfo) public clas ...
- java8 新特性 lambda过滤
1. 定义实体类 package com.atguigu.java8; public class Employee { private int id; private String name; pri ...
- java8 stream自定义分组求和并排序
public static void main(String[] args) { List<GroupDetailDTO> list = new ArrayList<>(); ...
随机推荐
- nunjucks如何使用?
基本的使用 const nunjucks = require('nunjucks') // nunjucks.configure({ autoescape: true }); // const res ...
- Deepin Linux 升级wine应用
前提是升级已经安装的wine应用 参考: 微信升级 mkdir /tmp/wechat cd /tmp/wechat wget https://dldir1.qq.com/weixin/Windows ...
- thinkphp5.0将数据指模板中
在控制器中写: public function index(){ $username = \think\Db::table('navigation')->where(array("Vi ...
- R ggplot学习笔记1
R 可视化学习笔记 记参数挺费劲的,还是用的时候查官方文档吧,现在记个大概就行吧~ 1.ggplot2分层次绘图 1.1 核心理念 把绘图与数据分离,把数据相关的绘图与数据无关的绘图分离,按图层作图. ...
- npm常用模块之chai使用
更多npm常用模块使用请访问:npm常用模块汇总 chai这是一款用于节点和浏览器的BDD / TDD断言库,可以与任何javascript测试框架完美地配对. 更多使用文档请点击访问chai工具官网 ...
- Selenium实战(二)——调用JavaScript之execute_script()方法
1.浏览器滚动条的拖动,不能依靠WebDriver提供的API来实现,用于调整浏览器滚动条位置的JavaScript代码如下: window.scrollTo(0,450); window.scrol ...
- word的一些运用技巧
1.去除换行符 替换:^p > 空格
- 题解【POJ1062】昂贵的聘礼
题面 比较复杂的最短路模型转换. 我们考虑一种建图方式: 建立一个超级源点 \(S\),它向每一个节点连一条权值为那一个节点物品价值的边,表示直接购买那一个物品: 对于每一个节点,由它每一个可用的替代 ...
- 题解【AcWing1089】烽火传递
题面 单调队列优化 DP 模板题. 我们考虑设 \(dp_{i}\) 表示从 \(1\) 到 \(i\) 能够准确传递情报,且第 \(i\) 个烽火台发出信号的最小费用. 转移方程不难得出:\(dp_ ...
- 360独角兽实习,连载周记(gnuradio 低功耗蓝牙BLE 综合工具模块编写)
(有点乱,之后会有整理) 最近在用写一套gnuradio的OOT模块,主要用来进行BLE嗅探的,github上有了一些工具,可是他们并没有很好的模块化,于是打算自己写一个,这样以后做一些其他的项目,模 ...