出现原因:stream流中 list 转换map数据时,选择作为map 中key的数据不唯一。
解决办法:
使用tomap()重载方法
public static void main(String[] args) {ListuserList = new ArrayList<>();
userList.add(new User().setUid(15).setAge(18).setUsername("zhangsan"));
userList.add(new User().setUid(16).setAge(19).setUsername("lisi"));
userList.add(new User().setUid(17).setAge(12).setUsername("wangwu"));
userList.add(new User().setUid(18).setAge(13).setUsername("zhaoliu"));
userList.add(new User().setUid(15).setAge(14).setUsername("zhangsan2"));
Mapmap = userList.stream().collect(
Collectors.toMap(
User::getUid,
User::getUsername,
(user1,user2)->user1
));
System.out.println(map);
}
(entity1, entity2) ->entity1 这里使用的箭头函数,也就是说当出现了重复key的数据时,会回调这个方法.
说明:选择前面的参数作为返回,则只会沿用第一次出现的数据作为key。选择后面的参数作为返回,则会沿用最后一次出现的数据作为key。
效果如下:
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
售后响应及时
7×24小时客服热线数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款