【发布时间】:2017-04-15 18:49:49
【问题描述】:
我有两个 TreeMap
第一张地图是:
Map<String, Double> m1 = new TreeMap();
第二个是:
Map<String,double []> m2 = new TreeMap();
我想将第一个映射中的键搜索到第二个映射,然后将第一个映射的值乘以第二个映射值的列表(对于相似的键)。
下面的代码对我很有用,但是当TreeMaps 很大时,搜索需要更多时间,我想为此提高速度,我该如何进行二进制搜索。
另一个问题是最快的搜索方式是TreeMap 还是HashMap?
double[] finalSum = new double[N];
for ( Map.Entry<String,Double> entry : m1.entrySet() ) {
if ( m2.containsKey(entry.getKey()) ) {
//if the key is common in map1 and map2, compare the values
double y=entry.getValue();
double j[]=m2.get(entry.getKey());
for (int u=0;u<j.length;u++){
finalSum[u] += y * j[u];
}}}
提前致谢:)
【问题讨论】:
标签: java search hashmap binary-search-tree binary-search