gpt4 book ai didi

java - 如何使用 Lambda 表达式过滤两个 map 并制作第三个 map java 8

转载 作者:行者123 更新时间:2023-11-29 07:24:06 27 4
gpt4 key购买 nike

Map<String,String> persons = new HashMap<>();
persons.put("aaaa@testing","123456789");
persons.put("bbbb@testing","987654321");

Map<String,UsersDTO> users = new HashMap<>();
users.put("aaaa@testing", UsersDTO1);
users.put("bbbb@testing",UsersDTO2);

//Below one is the my required final map by using above two maps by using java 8 Lambdas
Map<String,UsersDTO> finalMap = new HashMap<>();
finalMap.put("123456789",UsersDTO1);
finalMap.put("987654321",UsersDTO2);

如何使用上面的两个 map 制作finalMap?可能存在此类问题,但我想特别关注这一点,所以这就是我发布它的原因。如何使用lambda表达式来制作?

最佳答案

你可以这样做,但请注意你会得到一个 Map<String,UserDto> :

Map<String,UsersDTO> finalMap =
persons.entrySet().stream()
.collect(Collectors.toMap(Map.Entry::getValue, e-> users.get(e.getKey())));

正如 Andreas 所建议的,如果电子邮件在两个 map 之间没有匹配项,您可以处理这种情况。例如忽略条目:

Map<String, UsersDTO> finalMap =
persons.entrySet().stream()
.filter(e -> users.containsKey(e.getKey()))
.collect(Collectors.toMap(Map.Entry::getValue, e -> users.get(e.getKey())));

关于java - 如何使用 Lambda 表达式过滤两个 map 并制作第三个 map java 8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57913300/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com