没有合适的资源?快使用搜索试试~ 我知道了~
不用遍历的方式在对象集合list中抽取属性集合转化为map或list
5星 · 超过95%的资源 6 下载量 52 浏览量
2020-12-21
22:05:03
上传
评论
收藏 30KB PDF 举报
温馨提示
首先新建一个实体类Person @Data public class Person { /** 编码 */ private String code; /** 名字 */ private String name; public Person(String code, String name) { this.code = code; this.name = name; } } 实例化三个对象放入list集合中 public static void main(String[] args) { Person pe
资源推荐
资源详情
资源评论
不用遍历的方式在对象集合不用遍历的方式在对象集合list中抽取属性集合转化为中抽取属性集合转化为map或或
list
首先新建一个实体类Person
@Data
public class Person {
/** 编码 */
private String code;
/** 名字 */
private String name;
public Person(String code, String name) {
this.code = code;
this.name = name;
}
}
实例化三个对象放入list集合中
public static void main(String[] args) {
Person person1 = new Person("001", "张三");
Person person2 = new Person("002", "李四");
Person person3 = new Person("002", "王五");
List personList = new ArrayList();
personList.add(person1);
personList.add(person2);
personList.add(person3);
personList.forEach(t -> System.out.println(t.toString()));
}
输出结果为:
Person(code=001, name=张三)
Person(code=002, name=李四)
Person(code=002, name=王五)
1.抽取对象的抽取对象的code作为作为key,,name作为作为value转化为转化为map集合集合
方法为
private static HashMap listToMap(List personList) {
return (HashMap)personList.stream()
.filter(t -> t.getName()!=null)
.collect(Collectors.toMap(Person::getCode,Person::getName,(k1,k2)->k2));
}
filter() 方法作用是过滤掉名字为空的对象,当对象的名字为null时,会出现NPE空指针异常
(k1,k2)->k2 意思是遇到相同的key时取第二个值
(k1,k2)->k1 意思是遇到相同的key时取第一个值
调用这个方法
HashMap personMap = listToMap(personList);
personMap.forEach((k,v)-> System.out.println(k.toString() + " - " + v.toString()));
输出结果为:
001 - 张三
002 - 王五
2.抽取对象的抽取对象的name得到得到name的的list集合集合
方法为
private static List getNameList(List personList) {
return personList.stream().map(Person::getName).collect(Collectors.toList());
}
调用这个方法
List nameList = getNameList(personList);
nameList.forEach(t -> System.out.println(t.toString()));
weixin_38706455
- 粉丝: 5
- 资源: 920
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于JavaScript的在线考试系统(编号:65965158)(1).zip
- 五相电机双闭环矢量控制模型-采用邻近四矢量SVPWM-MATLAB-Simulink仿真模型包括: (1)原理说明文档(重要):包括扇区判断、矢量作用时间计算、矢量作用顺序及切时间计算、PWM波的生成
- Linux下的cursor安装包
- springboot-教务管理系统(编号:62528147).zip
- 3dmmods_倾城系列月白_by_白嫖萌新.zip
- SVPWM+死区补偿(基于电流极性)+高频注入法辨识PMSM的dq轴电感(离线辨识)-simulink
- 微信跑腿小程序的设计与实现
- 基于 Java 实现的上位机通讯程序,可与单片机进行数据交换
- screentshot-2024.12.22-20.45.35.jpg
- 基于c51单片机,汇编语言实现的时钟,有仿真电路图
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页