package common;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.TreeMap;
public class MergeUtil {
public static Map<Integer, Double> mergeMapsWithThreshold(Map<Integer, Double> srcMap, Map<Integer, Double> targetMap, int limit) {
Map<Integer, Double> resultMap = new LinkedHashMap<Integer, Double>();
Map<Integer, Double> sortedTargetMap = MapUtil.sortByValue(targetMap);
double threshold = 0.0;
for (Map.Entry<Integer, Double> entry : sortedTargetMap.entrySet()) {
threshold = entry.getValue();
break;
}
System.out.println(threshold);
for (Map.Entry<Integer, Double> srcEntry : srcMap.entrySet()) {
if (srcEntry.getValue() >= threshold) {
resultMap.put(srcEntry.getKey(), srcEntry.getValue());
} else {
break;
}
}
for (Map.Entry<Integer, Double> targetEntry: sortedTargetMap.entrySet()) {
if (resultMap.size() < limit) {
if (!resultMap.containsKey(targetEntry.getKey())) {
resultMap.put(targetEntry.getKey(), targetEntry.getValue());
}
} else {
break;
}
}
return resultMap;
}
}