为了账号安全,请及时绑定邮箱和手机立即绑定

一个stream转回map的问题

//Map获取Stream对象
Map<String, String> strMap = new HashMap<>();
strMap.put("Jack", "上海市浦东新区");
strMap.put("Tom", "上海市闵行区");
//通过Map的EntrySet获取Stream对象
Set<Map.Entry<String, String>> entrySet = strMap.entrySet();
Stream<Map.Entry<String, String>> mapStream = entrySet.stream();

//stream转换成Map
Map<Map.Entry<String, String>, Map.Entry<String, String>> map = mapStream.collect(Collectors.toMap(x -> x, y -> y));


这里是用map的entrySet来获取stream对象的,

想直接toMap转回Map,但是就会多包一层。

我倒是可以从entrySet里一个一个取元素放到一个新Map里,老式写法。。

但是怎么使用lambda方便快捷地转回去呢?


正在回答

2 回答

Map<String, Integer> stringIntegerMap = stream5.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
System.out.println(stringIntegerMap);
0 回复 有任何疑惑可以回复我~
Map<String, String> strMap = new HashMap<>();
strMap.put("Jack", "上海市浦东新区");
strMap.put("Tom", "上海市闵行区");
//通过Map的EntrySet获取Stream对象
Map<String,String> newMap=new HashMap<>();
strMap.entrySet().stream().forEach(v->{
    newMap.put(v.getKey(),v.getValue());
});
newMap.entrySet().stream().forEach(System.out::println);


1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

一个stream转回map的问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信