public static void main(String[] args)
{
Map map=new HashMap();
map.put("北京", 10);
map.put("天津", 8);
map.put("上海", 9);
map.put("杭州", 10);
map.put("广州", 7);
map.put("深圳", 8);
Set set=map.keySet();
Iterator it=set.iterator();
List<Integer> list=new ArrayList();
while(it.hasNext())
{
String key=(String) it.next();
int value=Integer.parseInt(map.get(key).toString()) ;
list.add(value);
}
Collections.sort(list);
for (int i = 0; i < list.size(); i++)
{
if(list.get(i)==list.get(i+1))
{
list.remove(i);
}
}
for (int i =list.size()-1; i >=0; i--)
{
Set set1=map.keySet();
Iterator it1=set1.iterator();
while(it1.hasNext())
{
String key=(String) it1.next();
int value=Integer.parseInt(map.get(key).toString()) ;
if(value==list.get(i))
{
System.out.println("key="+key+";value="+value);
}
}
}
}
代码很长 不懂在问我吧 没想到太好的方法
追问按照list.size循环 处理remove之后不是会下标越界吗?
追答不会 list.size()是变量 你可以测试下
本回答被提问者采纳