java - 如何从存储在 ArrayList 中的多级 HashMap 中获取值?

标签 java android arraylist hashmap multi-level

标题说明了一切。

示例代码:

ArrayList<HashMap<String, Object>> data = new ArrayList<HashMap<String, Object>>();

HashMap<String, Object> parentHash = new HashMap<String, Object>();
HashMap<String, String> childHash = new HashMap<String, String>();

childHash.put("child_id", "id")
childHash.put("name", "first last");
childHash.put("sex", "man");

parentHash.put("parent_id", "id");
parentHash.put("name", "first last");
parentHash.put("sex", "woman");

parentHash.put("children", childHash);
data.add(parentHash);

如果我在屏幕上打印 ArrayList“数据”(示例),一切看起来都很好:

[{parent_id=id, name=first last, sex=woman, children=[{
        child_id=id, name=first last, sex=man
    }]
}, {parent_id=id, name=first last, sex=woman, children=[{
        child_id=id, name=first last, sex=man
    }]
}];

所以是HashMap中的HashMap,然后是ArrayList中的。我知道如何从父级检索值,但是如何 我从 child 身上获取值(value)吗?

最佳答案

Map<String, String> childData= (Map<String, String>) parent.get("children");
String childId= childData.get("child_id");

另请注意,在您当前的结构中,您只能将一个子项添加到父项中:

parentHash.put("children", childHash);
parentHash.put("children", anotherChildHash); //overrides childHash
Map<String, String> childData = (Map<String, String>) parent.get("children");

在上面代码的末尾,childData 包含另一个 ChildHash,并且 childHash 不再存储在 parentHash 中。

关于java - 如何从存储在 ArrayList 中的多级 HashMap 中获取值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9993466/

相关文章:

java - 更新原始联系人

java - 是否有更干净的方法使用 RxJava 来适应标准观察者/监听器服务?

android - 从缓存中加载 webview

java - 如何调用 ArrayList 中数组的方法?

java - 获取字符串中的下一个数字

java - Android 切换按钮更改状态

java - 用于检测网络是否可用的后台线程

Android 将文件附加到 GMAIL - 无法附加空文件

android - 在 viewPager 中平滑停止滚动

java - ArrayList<Class> 中的 String[]