您的位置:首页 > 产品设计 > UI/UE

map实现按value排序功能

2011-12-30 11:45 337 查看
map内部是按照hash算法存储的,但如果能对map排序在某些时候还是有用的

/**

* @param h

* @return

* 实现对map按照value升序排序

*/

@SuppressWarnings("unchecked")

public static Map.Entry[] getSortedHashtableByValue(Map h) {

Set set = h.entrySet();

Map.Entry[] entries = (Map.Entry[]) set.toArray(new Map.Entry[set

.size()]);

Arrays.sort(entries, new Comparator() {

public int compare(Object arg0, Object arg1) {

Long key1 = Long.valueOf(((Map.Entry) arg0).getValue().toString());

Long key2 = Long.valueOf(((Map.Entry) arg1).getValue().toString());

return key1.compareTo(key2);

}

});

return entries;

}

/**

* @param h

* @return

* 实现对map按照key排序

*/

@SuppressWarnings("unchecked")

public static Map.Entry[] getSortedHashtableByKey(Map h) {

Set set = h.entrySet();

Map.Entry[] entries = (Map.Entry[]) set.toArray(new Map.Entry[set

.size()]);

Arrays.sort(entries, new Comparator() {

public int compare(Object arg0, Object arg1) {

Object key1 = ((Map.Entry) arg0).getKey();

Object key2 = ((Map.Entry) arg1).getKey();

return ((Comparable) key1).compareTo(key2);

}

});

return entries;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: