读书人

Map中最大的value值,同时列出键,值

发布时间: 2012-11-10 10:48:50 作者: rapoo

求一个Map中最大的value值,同时列出键,值

问题:求一个Map中最大的value值,同时列出键,值;?

?

方法1、

public static void main(String[] args){
??Map map=new HashMap();
??map.put("d", 761);
??map.put("g", 7);
??map.put("a", 761);
??map.put("c", 34);
??
??int value=0;
???? String maxKey = null;
???? List list=new ArrayList();
????
??Iterator ite=map.entrySet().iterator();
??while(ite.hasNext()){
?????????? Map.Entry entry =(Map.Entry)ite.next();
??????????? value = Integer.parseInt(entry.getValue().toString());
??????????? list.add(entry.getValue());
??????????? Collections.sort(list);
???????????
???????????? if(value == Integer.parseInt(list.get(list.size()-1).toString())){
??????????????? maxKey = entry.getKey().toString();
??????????????? System.out.println(maxKey+"/"+value);
???????????? }
???? }
?}
}

//????????? 答案:
//????????? d/761
//????????? a/761

?

?

?

方法2、

?

public static void main(String[] args) {
??Map map=new HashMap();
??map.put("d", 761);
??map.put("g", 7);
??map.put("a", 761);
??map.put("c", 34);
??
??Set set=map.keySet();
??Iterator it=set.iterator();
??int max=0;
??while(it.hasNext()){
???String key=(String)it.next();
???int init=(Integer)map.get(key);
???if(max<(Integer)map.get(key)){
????max=(Integer)map.get(key);
???}
??}
??List<String> list=test(map,max);
??for(String s:list){
???System.out.print(s+"/");
???System.out.println(max);
??}
?}

?private static List test(Map map, Object o) {
??List list=new ArrayList();
??Set set=map.keySet();
??Iterator it=set.iterator();
??while(it.hasNext()){
???String key=(String)it.next();
???if(o.equals(map.get(key))){
????list.add(key);
??? }
?? }
??return list;
?}
}


//????????? 答案:
//????????? d/761
//????????? a/761

1 楼 xhgrid 2011-10-25 读过,比较妙!

读书人网 >编程

热点推荐