标题说明了一切。
示例代码:
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/