技术标签: lambda java stream 新手博客 后端
利用java8 lambdas语言特性处理如下java集合对象,
为了方便描述对象用json表示为[{id:1,name:null},{id:1,name:”liwei”},{id:2,name:”zhansan”},{id:2,name:”lisi”}]
期望处理后的集合对象为[{id:1,name:[liwei]},{id:2, name:[zhansan,lisi] }]
具体代码实现如下:
//创建Person实体类:
public class Person {
private Integer id;
private String name;
public Person(Integer id) {
this.id = id;
}
public Person() {
}
public Person(Integer id, String name) {
this.id = id;
this.name = name;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
创建接收处理后的对象类:
public class PersonV2s {
private Integer id;
private List<String> names;
public PersonV2s(Integer id, List<String> names) {
this.id = id;
this.names = names;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public List<String> getNames() {
return names;
}
public void setNames(List<String> names) {
this.names = names;
}
}
public class LambdaDemo2 {
@Test
public void test() {
List<Person> personList = Arrays.asList(
new Person(1),
new Person(1, "liwei"),
new Person(2, "zhansan"),
new Person(2, "lisi")
);
final Map<Integer, List<String>> map
= personList.stream().collect(Collectors.groupingBy(Person::getId, Collectors.mapping(Person::getName, Collectors.toList())));
final List<PersonV2s> personV2ss
= map.entrySet().stream().map(p -> new PersonV2s(p.getKey(), p.getValue().stream().filter(Objects::nonNull).collect(Collectors.toList()))).collect(Collectors.toList());
System.out.println(personV2ss.toString());
}
}
文章浏览阅读2.1w次,点赞2次,收藏22次。本文教程针对的事2021年7月2日时国税查验平台的js分析,其中版本号为V2.0.06_009。主要分析内容为key9和flwq39以及fplx这3个参数的算法,其中key9分为获取验证码阶段和查验阶段,算法有所区别,flwq39同理。教程开始:一、官方网址https://inv-veri.chinatax.gov.cn/index.html二、请求分析国税查验平台请求共分为2个,第一个请求获取验证码,第二个请求为输入验证码后查验数据并返回发票详细信息。第一步:安装证书基础:谷歌_“http://inv—veri.chinatax.gov.cn/”
文章浏览阅读3.7k次。ASM驱动安装与ASM盘建立(一)(转自 求道的路上http://space.itpub.net/17203031/viewspace-692538)上一篇 / 下一篇 2011-04-14 20:53:33 / 个人分类:ASM查看( 207 ) / 评论( 3 ) / 评分( 3 / 0 ) 前段时间安装虚拟Linux上的ASM实例,中间反复了几次,不过_asm1166驱动
文章浏览阅读4.1w次,点赞34次,收藏127次。Python使用Scipy库中的io.loadmat读取.mat文件,并获取数据部分读取方法很简单,只需要使用scipy.io库即可,Python代码入下:import scipy.io as sioyFile = 'y2.mat' #相对路径datay=sio.loadmat(yFile)print datay此时输出的datay是一个字典格式的输出,如下:{‘y’:..._io.loadmat
文章浏览阅读2.6k次。测试教程网(虫师)http://www.testclass.net/rf/(虫师)Robot Framework自动化测试 ---视频与教程免费分享 电子书下载 《robot framework 自动化测试》 上课视频分享《robot framework上课视频》 最新录制网易云课堂《robot framework自动化测试入门》 最..._pycharm ride
文章浏览阅读2.9k次,点赞3次,收藏24次。欢迎加入Unity业内qq交流群:956187480qq扫描二维码加群源码,原工程下载地址:https://download.csdn.net/download/qq_37310110/10729281参考地址:https://blog.csdn.net/qq_37310110/article/details/83145193一:高德定位有效key的获取参考官方文档地址:获..._高德地图 unity sdk
文章浏览阅读84次。人生不缺不堪回首的过去,也不缺自欺欺人的幻想,脚踏实地的做自己,做自己喜欢的自己。生活不会辜负你,辜负你的只有人心。_lambdaquery groupby
文章浏览阅读355次。如果A点的电压小于M1的过零电压(即VA _state relay
文章浏览阅读2.2k次,点赞6次,收藏29次。1. 简介input 子系统就是管理输入的子系统,和pinctrl、gpio 子系统一样,都是 Linux 内核针对某一类设备而创建的框架。按键、鼠标、键盘、触摸屏等都属于输入设备,linux内核为此专门做了一个叫做input子系统的框架来处理输入事件。输入设备本质上还是字符设备,只是在此基础上套上了input框架,用户只需要负责上报输入事件,比如按键值、坐标等信息。对于驱动编写者而言不需要去关心应用层的事情,我们只需要按照要求上报这些输入事件即可为此input子系统分为 input驱动层、in_linux input子系统
文章浏览阅读2.8k次。背景数据库中要有必要的数据信息。比如流程定义表,流程定义的部署,流程实例的启动。根据ID删除,根据的是act_ru_deployment表的id进行删除的。这个删除操作影响了哪些表中的数据记录呢?流程定义信息的删除,操作的是act_ru_deployment表。是因为我们部署流程定义的信息的时候,其实就是把bpmn中的数据写到数据库中而已。因此,它删除的时候,没有找act_ru_proc..._activiti删除model表还要删除什么表
文章浏览阅读2.1k次,点赞4次,收藏19次。重新分配centos磁盘空间,将其中一个挂载点的空间分配给另一个挂载点_centos重新分配磁盘空间
文章浏览阅读1k次。题目大意:一个城镇里只有一个牧师,在国庆节这一天,他要为 n 对夫妇的婚礼祷告,这 n 对夫妇婚礼的开始时间 s 、结束时间 e 和祷告时间 d 不尽相同,但是祷告只能在每个婚礼的开始或结束时进行(如一个婚礼的开始时间为s , 结束时间为 e , 那么祷告的时间就为 s ~ s + d 或 e - d ~ e)。问:这个牧师是否能为所有的婚礼祷告,如果能,则输出为每个婚礼祷告的开始时间和结束时间。
文章浏览阅读6.6k次,点赞7次,收藏38次。解决java.io.FileNotFoundException: java.io.FileNotFoundException: HADOOP_HOME and hadoop.home.dir are unset. -see https://wiki.apache.org/hadoop/WindowsProblems_java.io.filenotfoundexception: java.io.filenotfoundexception: hadoop_home an