gpt4 book ai didi

java - 如何将 map 复制到另一张 map

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:20:09 25 4
gpt4 key购买 nike

我有两张 map

Map<String, List<String>> map = new HashMap<>();
Map<Integer, List<String>> newMap = new TreeMap<>();

map 中,我的键是用户年龄。我想按年龄对它们进行分组并复制到 newMap。例如:所有 10 岁以下的年龄组(并将所有值复制到一个列表)和所有 10 岁以上和 20 岁以下的年龄组到另一个组等。这是我尝试做的

for (int m = 10; m <= 80; m += 10) {                            
for (String key : map.keySet()) {
List<String> value = new ArrayList<>();
int age = Integer.parseInt(key);
if (age <= m) {
if ((value = newMap.get(m)) != null) {
value.addAll(map.get(key));
newMap.put(m, value);
} else {
newMap.put(m, value);

}
} else continue;
}
}

但是我得到了 ages 作为键,null 作为值 [10 = null; 30 = 空 20 = 空; ]

最佳答案

为什么不直接迭代 entrySet()

for (Map.Entry<String, List<String>> entry : map.entrySet()) {
// Since integer division is used, we'll lose the "ones" digit
Integer newKey = Integer.parseInt(entry.getKey()) / 10 * 10;

List<String> value = newMap.get(newKey) {
if (value == null) {
value = new LinkedList<>();
newMap.put(newKey, value);
}
value.addAll(entry.getValue());
}

关于java - 如何将 map 复制到另一张 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29881077/

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