求Map中值最大的元素

gjhuai 2009-07-30 08:09:06
求一个Map中值最大的元素,最好列出键、值以及编号索引(即下标)
...全文
1452 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
haojia0716 2009-09-28
  • 打赏
  • 举报
回复

public static void main(String[] args) {
int[] data = { 3, 3, 5, 1, 3, 5, 3, 5, 5, 8 };
Map<Integer, Integer> m = new HashMap<Integer, Integer>();
for (int i = 0; i < data.length; i++) {
if (m.get(data[i]) == null) {
m.put(data[i], 1);
} else {
m.put(data[i], m.get(data[i]) + 1);
}
}
System.out.println("Map里的元素: " + m);

int t = 0;
Set<Map.Entry<Integer, Integer>> set = m.entrySet();
for (Entry<Integer, Integer> entry : set) {
if (entry.getValue() > t) {
t = entry.getValue();
}
}

System.out.println("次数最多的有:");
for (Entry<Integer, Integer> entry : set) {
if (entry.getValue() == t) {
System.out.println(entry.getKey());
}
}
}
}
happymichaelji 2009-09-04
  • 打赏
  • 举报
回复
5楼的,如果Map 中的值有重复怎么办
yuanye2005king 2009-08-18
  • 打赏
  • 举报
回复
TreeMap中lastKey可以返回最大的键值
superheizai 2009-07-30
  • 打赏
  • 举报
回复
呵呵,路过了
breezes2008 2009-07-30
  • 打赏
  • 举报
回复
不妨用SortedMap代替HashMap
  • 打赏
  • 举报
回复
Map 有下标么?
Miracle1216 2009-07-30
  • 打赏
  • 举报
回复
用一个高效的查找方法。
gesanri 2009-07-30
  • 打赏
  • 举报
回复


import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;


public class Test {
public static void main(String args[]){
Map<String,Integer> map = new HashMap<String,Integer>();
int maxValue = 0;
String maxKey = null;
map.put("sg", 17);
map.put("gewg", 263);
map.put("ge", 4);
map.put("gwe", 34);
Iterator it = map.entrySet().iterator();
for(int i=0;i<map.size();i++){
Map.Entry entry =(Map.Entry)it.next();
int value = Integer.parseInt(entry.getValue().toString());
if(value > maxValue){
maxValue = value;
maxKey = entry.getKey().toString();
}
}
System.out.println("maxValue="+maxValue+",its key is "+maxKey);
}
}
JavaChenYang 2009-07-30
  • 打赏
  • 举报
回复
如果你想得到Map的键的最大值,可以覆盖将你的key对象去实现comparable接口,然后用
keySet进行排序。或者直接使用Collections.sort(list,new Comparator<E>)进行排序。
如果你想到Map的值的最大值,同上理,将value collection 进行排序
xiaomiao13 2009-07-30
  • 打赏
  • 举报
回复
遍历Map的values,同时遍历keySet,一个循环就找出了最大值和其对应的key;
或者遍历Map 的entrySet也一样。
gjhuai 2009-07-30
  • 打赏
  • 举报
回复
谢谢大家了
wym2005em 2009-07-30
  • 打赏
  • 举报
回复
遍历呗。求数组最大值似的

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧