java 取list集合中出现次数最多的值 100
List<Map<String,Object>>stations=getAll(city,time);station里有多条数据。现在通过for(Map<String,O...
List<Map<String, Object>> stations = getAll(city,time);
station 里有多条数据。现在通过
for (Map<String, Object> map : stations) {
map.get("factor");
}
取到里面所有的key为factor的值,我想拿出 factor里出现次数最多的那个值。改怎么拿,factor里的值都是String类型。急求! 展开
station 里有多条数据。现在通过
for (Map<String, Object> map : stations) {
map.get("factor");
}
取到里面所有的key为factor的值,我想拿出 factor里出现次数最多的那个值。改怎么拿,factor里的值都是String类型。急求! 展开
2个回答
展开全部
Map countMap = new HashMap<String, Integer>();
for (Map<String, Object> map : stations) {
String value = (String)map.get("factor");
if(countMap.containsKey(value)){
Integer thisCount = (Integer) countMap.get(value);
countMap.put(value,thisCount+1);
}else{
countMap.put(value,1);
}
}
String maxKey = "";
int maxNo= 0;
Set<String> keySet = countMap.keySet();
for(String key:keySet){
int valueNo = (Integer)countMap.get(key);
if(valueNo>maxNo){
maxNo = valueNo;
maxKey = key;
}
}
System.out.println("出现最多的值为:"+maxKey+" 出现次数为:"+maxNo);
for (Map<String, Object> map : stations) {
String value = (String)map.get("factor");
if(countMap.containsKey(value)){
Integer thisCount = (Integer) countMap.get(value);
countMap.put(value,thisCount+1);
}else{
countMap.put(value,1);
}
}
String maxKey = "";
int maxNo= 0;
Set<String> keySet = countMap.keySet();
for(String key:keySet){
int valueNo = (Integer)countMap.get(key);
if(valueNo>maxNo){
maxNo = valueNo;
maxKey = key;
}
}
System.out.println("出现最多的值为:"+maxKey+" 出现次数为:"+maxNo);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-12-25
展开全部
int max = Integer.MIN_VALUE;
for (Map<String, Object> map : stations) {
Integer x = (Integer)map.get("factor");
max = max > x ? max : x;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询