gpt4 book ai didi

java - 迭代嵌套(多维) HashMap

转载 作者:行者123 更新时间:2023-12-02 10:57:36 28 4
gpt4 key购买 nike

我有一个HashMap<String, Object>当我调用 .toString() 时,它看起来像这样:

{somekey=false, anotherKey=someString, thirdKey={nestedKey=hello, nestedKey2=world,etc=etcetcetc}}

在我的脚本中的某个时刻,我想将“thirdKey”集作为其自己的映射进行迭代。是否有一个通用约定用于隔离“嵌套”HashMap 并将其用作自己的一维映射?

最佳答案

这是我的代码,用于从 map (以及这些 map 中的 map )递归提取所有值。

public List<Object> getValues(Map<String, Object> map) {

List<Object> retVal = new ArrayList<Object>();

for (Map.Entry<String, Object> entry : map.entrySet()) {
Object value = entry.getValue();

if (value instanceof Map) {
retVal.addAll(getValues((Map) value));
} else {
retVal.add(value);
}
}

return retVal;
}

正如 Vikdor 所说,我认为这方面没有真正的约定。

编辑:当然,您也可以将键和值写入新的 Map(“扁平化”它)。我刚刚将值添加到列表中,因为这样当其中一个嵌套映射使用已存在的键时就不会遇到问题。

关于java - 迭代嵌套(多维) HashMap ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12143500/

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