帮我看下这段代码 关于treemap排序的

liul17 2006-07-14 02:10:52
我想实现对treemap关键字的倒排序,但排序后的结果是关键字排了,但值全是null了
public static Map sortMapByValue(Map map){

System.out.println("ok1");
// Map mapVK = new TreeMap();

Map mapVK = new TreeMap(new Comparator(){
public int compare(Object o1, Object o2) {
int v1 = ((Integer)o1).intValue();
int v2 = ((Integer)o2).intValue();
int s = v2 - v1;
if(s==0) return -1;
else return s;
}
});

System.out.println("ok2");

Collection col = map.keySet();
Vector v = new Vector(col);
//转置map
for(int i=0;i<v.size();i++){
String key = (String)v.get(i);
Integer value = (Integer)map.get(key);
System.out.println("ok3-" + i + "," +key);
mapVK.put(value,key);
System.out.println("ok>>>>" + (String)mapVK.get(value));
}


return mapVK;
}
...全文
298 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
navence 2006-07-14
  • 打赏
  • 举报
回复
if(s==0) return -1;//????相同为啥取反,get的时候也要compare的。
你这样子写肯定取不到符合条件的数据

if(s==0) return 0;
kingdoom 2006-07-14
  • 打赏
  • 举报
回复
mapVK.put(value,key);没有PUT进去
oscar_java 2006-07-14
  • 打赏
  • 举报
回复
up

62,614

社区成员

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

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