【发布时间】:2014-08-21 19:00:08
【问题描述】:
有人可以帮助我获得正确的列表,没有重复。
我有一个哈希映射列表,说“哈希映射映射”,其大小为 4。 键值对类似于下面的内容
("uri_path","/shophome/index")
("AvgResp","30.00")
("count", "3");
("status","200");
我想创建另一个 Hashmap 列表,其中包含“uri_path”的单个条目以及相应计算的平均值和计数。这就是我正在尝试的。理想情况下,新列表的大小应该小于原始列表。有人可以帮助理解它是否出错了
HashMap<String, String> processedMap = null;
List<HashMap<String, String>> artProcessedEvents=new ArrayList<HashMap<String, String>>();
for (HashMap<String, String> map : artEvents) {// list that contains the values
processedMap = new HashMap<String, String>();
String uri_path= map.get("uri_path");
Double art = Double.parseDouble(map.get("avgRespT"));
count =Integer.parseInt(map.get("count"));
if (processedMap.containsValue(uri_path)){
Double artFromMap = Double.parseDouble(processedMap.get("avgRespT"));
int countFromMap =Integer.parseInt(processedMap.get("count"));
count = count+countFromMap;
art = ((art*count) + (artFromMap*countFromMap))/count;
}
processedMap.put("uri_path",uri_path);
processedMap.put("avgRespT",String.valueOf(art));
processedMap.put("count", String.valueOf(count));
artProcessedEvents.add(processedMap);
}
}
【问题讨论】:
-
你怎么知道有问题?
-
这一行:
if (processedMap.containsValue(uri_path)){没有意义,因为地图总是空的。你刚刚创建了它。