最近由于特殊的业务需求,需要做相关数据排序,下面就贴出其中的将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;
}

后面补充在工作中,由于公司业务,做的一个实际的排序算法。

最新文章

  1. GOLANG 基本数据类型 整型
  2. 【mysql】关于innodb中MVCC的一些理解
  3. 【读书笔记《Android游戏编程之从零开始》】8.Android 游戏开发常用的系统控件(系统控件常见问题)
  4. Eclipse中配置Tomcat服务器
  5. Win2008R2PHP5.4环境加载Zend模块
  6. C 中数组和指针的区别
  7. 【HDOJ】3400 Line belt
  8. Linux中的读函数与块高速缓存
  9. Swift - 时间控制器NSTimer(每隔一定时间执行某个函数)
  10. JUnit4教程-高速入口
  11. Lowest Common Ancestor of a Binary Tree leetcode
  12. 比较三个 CSS 预处理器:Sass、LESS 和 Stylus(下)
  13. 关于工作中Git相关的总结
  14. Nginx+rtmp+ffmpeg 搭建推流服务器
  15. 论Activity的转换
  16. VMware虚拟机CentOS7网络通信与无线上网
  17. Django(十四)分页器(paginator)及自定义分页D
  18. python中面向对象元类的自定义用法
  19. emouse思&middot;睿&mdash;评论与观点整理之一
  20. 2017-2018-1 《信息安全技术》实验二——Windows口令破解

热门文章

  1. C# 使用UUID生成各种模式方法
  2. C#中执行存储过程并在SQL server中调试
  3. Android&#160;动画分析学习笔记
  4. 42:换汽水瓶ExchangeBottle
  5. 关于Linux网络配置
  6. 机器学习14—SVD学习笔记
  7. shadow密码文件
  8. 【Mac系统】istatmenus6.20下载以及激活
  9. div+css 画三角形
  10. 如何使CSS--better(系列二)