gpt4 book ai didi

java - 如何循环 HashMap 中的下一个元素

转载 作者:行者123 更新时间:2023-11-30 07:09:49 26 4
gpt4 key购买 nike

我有一组像这样的字符串

A_2007-04, A_2007-09, A_Agent, A_Daily, A_Execute, A_Exec, B_Action, B_HealthCheck

我想要输出为:

Key = A, Value = [2007-04,2007-09,Agent,Execute,Exec]
Key = B, Value = [Action,HealthCheck]

我使用 HashMap 来执行此操作

pckg:{A,B}
count:total no of strings
reports:set of strings

我使用的逻辑是嵌套循环:

for (String l : reports[i]) {
for (String r : pckg) {
String[] g = l.split("_");
if (g[0].equalsIgnoreCase(r)) {
report.add(g[1]);
dirFiles.put(g[0], report);
} else {
break;
}
}
}

我得到的输出为

Key = A, Value = [2007-04,2007-09,Agent,Execute,Exec]

如何获得第二把 key ?有人可以提出这个逻辑吗?

最佳答案

假设您使用Java 8,则可以使用 computeIfAbsent 来完成当它是新键时初始化值的列表,如下所示:

List<String> tokens = Arrays.asList(
"A_2007-04", "A_2007-09", "A_Agent", "A_Daily", "A_Execute",
"A_Exec", "P_Action", "P_HealthCheck"
);
Map<String, List<String>> map = new HashMap<>();
for (String token : tokens) {
String[] g = token.split("_");
map.computeIfAbsent(g[0], key -> new ArrayList<>()).add(g[1]);
}

关于java - 如何循环 HashMap 中的下一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39412256/

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