gpt4 book ai didi

java - 嵌套 HashMap 覆盖其他键

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

我遇到一个问题,当我想更改嵌套 HashMap 中的值时,其他 HashMap 被覆盖。

例如,我有一个名为 Alligator 的键,它存储一个包含键 Weight 和 Size 的 HashMap。我希望能够更改与 Size 关联的值,但根本不影响 Weight。在 yml 文件中,这就是它的样子。

Alligator:
Weight: 100.0
Size: 10.0

这就是我希望发生的事情。

Alligator:
Weight: 150.0
Size: 10.0

这是我之前找到的一些代码,可以让我更改值,但会覆盖...

HashMap< String, HashMap< String, Double>> data = new HashMap<>();

data.put("Alligator", new HashMap() {
{
put("Size", 10.0
}
});

HashMap< String, HashMap< String, Double>> data = new HashMap<>();

data.put("Alligator", new HashMap() {
{
put("Weight", 100.0
}
});

最佳答案

   data.put("Alligator", new HashMap() {
{
put("Weight", 100.0);
}
});

如果“Alligator”键已经在外部 Map 中,则会覆盖其内部 Map。

你必须首先检查是否存在:

Map<String, Double> inner = data.get("Alligator");
if (inner != null) {
inner.put("Weight", 100.0);
} else {
data.put ("Alligator", new HashMap() {
{
put("Weight", 100.0);
}
});
}

顺便说一句,我不会为内部 Map 使用 HashMap 实例的匿名子类。您可以用这个更简单的代码替换它:

Map<String, Double> inner = data.get("Alligator");
if (inner == null) {
inner = new HashMap<>();
data.put ("Alligator",inner);
}
inner.put("Weight", 100.0);

关于java - 嵌套 HashMap 覆盖其他键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30907778/

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