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

Map集合按照value和key进行排序

2017-04-14 22:12 696 查看
最近由于特殊的业务需求,需要做相关数据排序,下面就贴出其中的将map集合中按照value或者key进行排序的代码,后面再具体详说。

/**
* map 集合排序
* @param map
* @return
*/
public static <K, V extends Comparable<? super V>> Map<K, V> sortMap(Map<K, V> map)
{
List<Map.Entry<K, V>> list = new LinkedList<Map.Entry<K, V>>(map.entrySet());
Collections.sort(list, new Comparator<Map.Entry<K, V>>()
{
public int compare(Map.Entry<K, V> o1, Map.Entry<K, V> o2)
{
// 按照 value进行排序
return (o2.getValue()).compareTo(o1.getValue());  // 20 ,3,1 倒叙
//                return (o1.getValue()).compareTo(o2.getValue());  // 1 ,3,20 正序
// 按照key 进行排序
//                return ((String) o1.getKey()).compareTo((String) o2.getKey());  // k1 ,k2,k3 正序
//                return ((String) o2.getKey()).compareTo((String) o1.getKey());  // k3 ,k2,k1  倒叙
}
});

Map<K, V> result = new LinkedHashMap<K, V>();
for (Map.Entry<K, V> entry : list)
{
result.put(entry.getKey(), entry.getValue());
}
return result;
}


后面补充在工作中,由于公司业务,做的一个实际的排序算法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: