所以我有一个数据结构:
Map<String, Map<String, ArrayList<Double>>> dataStructure = new HashMap<String, Map<String, ArrayList<Double>>>();
if(!dataStructure.containsKey(key)) {
dataStruct2.put(key, new HashMap<String, ArrayList<Double>>());
}
现在我如何自己访问ArrayList,例如我想在ArrayList中放入一个值。请解释一下你在做什么,我是一个非常棒的人。谢谢,我理解之前已经提出类似的问题,但我不明白解决方案。
感谢您的时间:)
答案 0 :(得分:1)
要向ArrayList添加值,只需执行以下操作:
try {
Map m = dataStructure.get("<KEY>");
for(String key : m.keySet()){
dataStructure.get("<KEY>").get(key).add(<VALUE>);
}
} catch (NullPointerException e) {
System.out.println("null value found!");
}
这行代码获取内部映射,然后获取ArrayList本身,以便您可以编辑它。如果由于某种原因它遇到空值,它将返回异常。
我希望这会对你有所帮助。
答案 1 :(得分:0)
简单地:
if(!dataStructure.containsKey(key)) {
ArrayList<Double> list = new ArrayList<>();
list.add(2.0);
Map<String, ArrayList<Double>> map = new HashMap<String, ArrayList<Double>>();
map.put(someKey, list);
dataStruct2.put(someOtherKey, map);
}
答案 2 :(得分:0)
<强>代码:强>
public void add(Map<String, Map<String, ArrayList<Double>>> data, String key1, String key2, double addOn){
/*
* data - original data structure;
* key1 - entry within primary data structure;
* key2 - entry within secondary data structure;
* addOn - value to be added to the list;
*/
if(data.containsKey(key1) && data.get(key1).containsKey(key2)){
data.get(key1).get(key2).add(addOn);
}
else{
System.out.println("Error! Key1 || Key2 corrupt!");
}
}