我有以下签名的散列图
Map<Key1, Map<Key2, List<Double>>>
我需要在内部嵌套映射的所有键上的列表中添加相同的索引。我似乎无法找到任何有效的方法,因为我不会事先知道列表的大小。 到目前为止,我提出的最好的方法是将所有内部列表转换为arraylists,然后通过使用迭代器添加所有内部列表。有没有更有效的方法来做到这一点?
答案 0 :(得分:0)
Double sumOfSameIndex =0.0;
Map<Key1, Map<Key2, List<Double>>> map = new LinkedHashMap<Key1, Map<Key2, List<Double>>>();
Iterator<Map.Entry<Key1, Map<Key2, List<Double>>>> outerIterator = map.entrySet().iterator();
while(outerIterator.hasNext()){
Map.Entry<Key1, Map<Key2, List<Double>>> entryForOuterMap= outerIterator.next();
Iterator<Map.Entry<Key2, List<Double>>> innerIterator = entryForOuterMap.getValue().entrySet().iterator();
while(innerIterator.hasNext()){
Map.Entry<Key2, List<Double>> entryForInnerMap = innerIterator.next();
// entryForInnerMap.getValue() returns List<Double>
List<Double> getList= entryForInnerMap.getValue();
// REPLACE THIS x WITH the INDEX OF ARRAY YOU WANT TO SUM
sumOfSameIndex = sumOfSameIndex + getList.get ( x );
}
}