Java 将地图转换为自定义地图 Map characterMap=newhashmap(); characterMap.put(“Manikanta”、“Pretty”); characterMap.put(“Amulya”、“VeryGood”); characterMap.put(“Saroja”,“Good”); characterMap.put(“Vinitha”,“酷”); characterMap.put(“Sravani”,“Good”); characterMap.put(“Sameera”,“Good”); /*String key=characterMap.entrySet().stream().filter(entry->entry.getValue().equalsIgnoreCase(“Good”).map(map.entry::getKey).findFirst().orElse(null)*/ Map comboMap=newhashmap(); 字符串newKey=null; 字符串val1=null; 字符串val2=null; 对于(Map.Entry:characterMap.entrySet()){ if(entry.getKey().equalsIgnoreCase(“Manikanta”)) newKey=entry.getKey(); if(entry.getKey().equalsIgnoreCase(“Amulya”)) val1=entry.getValue(); if(entry.getKey().equalsIgnoreCase(“Vinitha”)) val2=entry.getValue(); } comboMap.put(newKey,val1+“”+val2);

Java 将地图转换为自定义地图 Map characterMap=newhashmap(); characterMap.put(“Manikanta”、“Pretty”); characterMap.put(“Amulya”、“VeryGood”); characterMap.put(“Saroja”,“Good”); characterMap.put(“Vinitha”,“酷”); characterMap.put(“Sravani”,“Good”); characterMap.put(“Sameera”,“Good”); /*String key=characterMap.entrySet().stream().filter(entry->entry.getValue().equalsIgnoreCase(“Good”).map(map.entry::getKey).findFirst().orElse(null)*/ Map comboMap=newhashmap(); 字符串newKey=null; 字符串val1=null; 字符串val2=null; 对于(Map.Entry:characterMap.entrySet()){ if(entry.getKey().equalsIgnoreCase(“Manikanta”)) newKey=entry.getKey(); if(entry.getKey().equalsIgnoreCase(“Amulya”)) val1=entry.getValue(); if(entry.getKey().equalsIgnoreCase(“Vinitha”)) val2=entry.getValue(); } comboMap.put(newKey,val1+“”+val2);,java,lambda,Java,Lambda,如何在lambda表达式中实现这一点?是否真的可以像上面的代码那样插入现有地图数据进行自定义以添加新地图?您不能 显然,您正在尝试将一个包含6个元素的映射简化为一个包含单个元素的映射(如果这是一个示例,并且生成的映射将只包含一个值为“Manikanta”->“VeryGood_Cool”的键,您需要更新您的示例) streams(我想这就是你所说的“在lambda表达式中”)擅长于对流中的单个元素进行操作(比如说,概念“Saroja”->“Good”),或者擅长于如何将整个流转换为不同的集合(例

如何在lambda表达式中实现这一点?是否真的可以像上面的代码那样插入现有地图数据进行自定义以添加新地图?

您不能

显然,您正在尝试将一个包含6个元素的映射简化为一个包含单个元素的映射(如果这是一个示例,并且生成的映射将只包含一个值为“Manikanta”->“VeryGood_Cool”的键,您需要更新您的示例)

streams(我想这就是你所说的“在lambda表达式中”)擅长于对流中的单个元素进行操作(比如说,概念“Saroja”->“Good”),或者擅长于如何将整个流转换为不同的集合(例如:将整件事转换为键列表)


您可以编写自定义收集器;它不会比这段代码短,而且会更难阅读。因此,我看不出显示它的意义。

因为您只检查键值,甚至不需要for循环:

Map<String, String> characterMap = new HashMap<>();
characterMap.put("Manikanta", "Pretty");
characterMap.put("Amulya", "VeryGood");
characterMap.put("Saroja", "Good");
characterMap.put("Vinitha", "Cool");
characterMap.put("Sravani", "Good");
characterMap.put("Sameera", "Good");

/*String key = characterMap.entrySet().stream().filter(entry -> entry.getValue().equalsIgnoreCase("Good")).map(Map.Entry::getKey).findFirst().orElse(null);*/

Map<String, String> comboMap = new HashMap<>();
String newKey = null;
String val1 = null;
String val2 = null;
for (Map.Entry<String, String> entry : characterMap.entrySet()) {
    if (entry.getKey().equalsIgnoreCase("Manikanta"))
        newKey = entry.getKey();

    if (entry.getKey().equalsIgnoreCase("Amulya"))
        val1 = entry.getValue();

    if (entry.getKey().equalsIgnoreCase("Vinitha"))
        val2 = entry.getValue();
}

comboMap.put(newKey, val1 + "_" + val2);

您是否只向新地图添加一个条目?是的,我正在添加一个条目,其中包含多个值组合作为新地图中的值
comboMap.put(characterMap.containsKey("Manikanta")?"Manikanta":null,
             characterMap.get("Amulya")+ "_" + characterMap.get("Vinitha"));