Java-Stream map 映射元素

map 方法用于映射元素,且映射时可加入计算逻辑


一、List map映射一个字段,转为新List

List<userInfo> userList = new ArrayList<>();
// userInfo字段 
UserId;    Age;    NickName;     Sex 1:2:女 ;     Money BigDecimal
userList.add(new userInfo(1,22,"小明",1,new BigDecimal("11")));
userList.add(new userInfo(2,22,"小红",2,new BigDecimal("22")));
userList.add(new userInfo(3,24,"小张",1,new BigDecimal("33")));

List<String> nickNameList = userList.stream().map(userInfo::getNickName).collect(Collectors.toList());

二、map映射字段 类型转换

1) Integer 转 String
List<Integer> integers = Arrays.asList(1, 2, 3, 4);
List<String> filter1 = integers.stream().map(s -> s.toString()).collect(Collectors.toList());

List<String> UserIdList = userList.stream().map(userInfo::getUserId).map(s -> s.toString()).collect(Collectors.toList());
2) String 转 Long
List<String> integers = Arrays.asList("1", "2", "3", "4");
List<Long> filter1 = integers.stream().map(s -> Long.parseLong(s)).collect(Collectors.toList());

三、map映射字段逻辑计算

1) 求和

BigDecimal 求和 add

 BigDecimal sum = userList.stream().map(userInfo::getMoney).reduce(BigDecimal.ZERO,BigDecimal::add);

说明:BigDecimal::multiply 乘法 BigDecimal::max 等


Int, Long, Double 求和 sum //mapToInt mapToLong mapToDouble

 int sumAge = userList.stream().mapToInt(userInfo::getAge).sum();
2) 平均值
Double filter1 = integers.stream().mapToInt(s -> s).average().getAsDouble();
3) 最大值
Integer filter2 = integers.stream().mapToInt(s -> s).max().getAsInt();
BigDecimal sum = userList.stream().map(userInfo::getMoney).reduce(BigDecimal.ZERO,BigDecimal::max);

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值