Java:比较嵌套hashmap的所有值

时间:2015-07-05 03:21:39

标签: java hashmap

我有以下签名的散列图

Map<Key1, Map<Key2, List<Double>>>

我需要在内部嵌套映射的所有键上的列表中添加相同的索引。我似乎无法找到任何有效的方法,因为我不会事先知道列表的大小。 到目前为止,我提出的最好的方法是将所有内部列表转换为arraylists,然后通过使用迭代器添加所有内部列表。有没有更有效的方法来做到这一点?

1 个答案:

答案 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 );  

          }
     }