gpt4 book ai didi

用于 HashMap 的 Java 8 流

转载 作者:行者123 更新时间:2023-11-30 10:55:51 25 4
gpt4 key购买 nike

下面是我使用的 map ,但是当我运行时,我得到了声纳循环复杂性。而不是这个 if else if else.. 我想使用 Java 8 Stream。如何在 Java 8 Streams 中编写此...请指教。

Map<String, String> innerMap = new HashMap<String, String>();
innerMap.put("ONE" , "ABC");
innerMap.put("TWO" , "DEF");
innerMap.put("THREE" , "GHI");

Map<String, Map<String,String> outerMap = new HashMap<String, Map<String, String>>();
outerMap.put("OUTER" , innerMap);

if(outerMap.containsKey("OUTER")){
if(innerMap.containsKey("ONE")){
call one method.....
}else if (innerMap.containsKey("TWO")){
call one method....
}else if (){
.......
}
}

谢谢。

最佳答案

使用 Java 8,您可以进行行为参数化。这意味着您可以拥有一个具有 2 个属性的类(我们称它为 X)- value(type=String)、method(type=Function)

因此,您可以像这样构建 map :

Map<String, X> innerMap = new HashMap<>();
innerMap.put("ONE" , new X("ABC", SomeClass::somemethod));
innerMap.put("TWO" , new X("DEF", SomeClass::somemethod2));
innerMap.put("THREE" , new X("GHI", SomeClass::somemethod3));

然后,你可以迭代 map 的entrySet(),调用function.apply();

关于用于 HashMap 的 Java 8 流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33194024/

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