java按照map的value排序 转载http://blog.csdn.net/tsingheng/article/details/7909861

java的TreeMap可以排序,只可惜是按照key来排序的,或者重写其他Map的排序算法也都是按照key来排序的,下面贴出来一个按照value排序的算法:

[java] view plaincopy

  1. public class SortMap {
  2. public static void main(String[] args) throws Exception {
  3. // TODO code application logic here
  4. Map<String, Integer> myMap = new LinkedHashMap();
  5. myMap.put("1", 1);
  6. myMap.put("2", 4);
  7. myMap.put("3", 3);
  8. myMap.put("4", 9);
  9. myMap.put("5", 6);
  10. myMap.put("6", 2);
  11. printMap(myMap);
  12. myMap = sortMap(myMap);
  13. printMap(myMap);
  14. }
  15. private static void printMap(Map map){
  16. System.out.println("===================mapStart==================");
  17. Iterator it = map.entrySet().iterator();
  18. while(it.hasNext()){
  19. Map.Entry entry = (Map.Entry) it.next();
  20. System.out.println(entry.getKey() + ":" + entry.getValue());
  21. }
  22. System.out.println("===================mapEnd==================");
  23. }
  24. public static Map sortMap(Map oldMap) {
  25. ArrayList<Map.Entry<String, Integer>> list = new ArrayList<Map.Entry<String, Integer>>(oldMap.entrySet());
  26. Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() {
  27. @Override
  28. public int compare(Entry<java.lang.String, Integer> arg0,
  29. Entry<java.lang.String, Integer> arg1) {
  30. return arg0.getValue() - arg1.getValue();
  31. }
  32. });
  33. Map newMap = new LinkedHashMap();
  34. for (int i = 0; i < list.size(); i++) {
  35. newMap.put(list.get(i).getKey(), list.get(i).getValue());
  36. }
  37. return newMap;
  38. }
  39. }

时间: 2025-01-17 22:38:29

java按照map的value排序 转载http://blog.csdn.net/tsingheng/article/details/7909861的相关文章

转:Java面试题集(51-70) http://blog.csdn.net/jackfrued/article/details/17403101

Java面试题集(51-70) Java程序员面试题集(51-70) http://blog.csdn.net/jackfrued/article/details/17403101 摘要:这一部分主要讲解了异常.多线程.容器和I/O的相关面试题.首先,异常机制提供了一种在不打乱原有业务逻辑的前提下,把程序在运行时可能出现的状况处理掉的优雅的解决方案,同时也是面向对象的解决方案.而Java的线程模型是建立在共享的.默认的可见的可变状态以及抢占式线程调度两个概念之上的.Java内置了对多线程编程的支

MyEclipse+Tomcat+MAVEN+SVN项目完整环境搭建(转载http://blog.csdn.net/zhshulin/article/details/30779873)

1.1新建变量名:JAVA_HOME   变量值:E:\Java\jdk1.6.0_43(这是我的jdk安装路径) 1.2编辑变量名:Path  在后面加上:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin 1.3 新建变量名:CLASSPATH 变量值: .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar (注意:在设置变量的末尾时不要加上":") ----------------

Win10双击调试 转载 http://blog.csdn.net/sagittarius_warrior/article/details/51305046

转:注1:本文非本人所写,尊重原作者劳动成果.仅是对原文备份. http://blog.csdn.net/sagittarius_warrior/article/details/51305046(原来链接出处) 注2:最近在双击调试,需要配置双击调试环境,经尝试,原作者提供的方法可行,故转载备份一张,方便记忆,再次感谢原作者,及李Sir( http://www.cnblogs.com/lzjsky/archive/2010/12/14/1905248.html),希望他们不要来打我,汗 本文章已

java代码注释规范-----转载-----http://blog.csdn.net/shiyuezhong/article/details/8205281/

1 代码注释是架起程序设计者与程序阅读者之间的通信桥梁,最大限度的提高团队开发合作效率.也是程序代码可维护性的重要环节之一.所以我们不是为写注释而写注释.下面说一下我们在诉求网二期开发中使用的代码注释规范,供大家参考下. 2 3 原则: 4 1.注释形式统一 5 6 在整个应用程序中,使用具有一致的标点和结构的样式来构造注释.如果在其它项目中发现它们的注释规范与这份文档不同,按照这份规范写代码,不要试图在既成的规范系统中引入新的规范. 7 8 2.注释内容准确简洁 9 10 内容要简单.明了.含

Java语言的反射机制 笔记 摘自 http://blog.csdn.net/kaoa000/article/details/8453371

在Java运行时环境中,对于任意一个类,能否知道这个类有哪些属性和方法?对于任意一个对象,能否调用它的任意一个方法?答案是肯定的.这种动态获取类的信息以及动态调用对象的方法的功能来自于Java 语言的反射(Reflection)机制. 1.Java 反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类.在运行时构造任意一个类的对象.在运行时判断任意一个类所具有的成员变量和方法.在运行时调用任意一个对象的方法 2.Reflection 是Java被视为动态(或准动态)语言的一个关键性质.

Uni2D 入门 -- Atlas转载 http://blog.csdn.net/kakashi8841/article/details/17588095

转载csdnTexture Atlas 我为什么应该使用Texture Atlas? 使用Atlas是一个普遍的好做法,而且它有很多好处.当有某些需要在屏幕渲染的时候,它背后带来的是draw call.由于不同的原因(例如渲染状态改变),一个draw call是一个很慢的操作,因此我们需要保持较低的draw call来保证较高的帧率.在移动设备上,接近30-40个draw call就开始变得危险了,具体取决于你的设备和渲染的场景. 幸运的是,在一些条件下,draw call是可以被批量处理的.u

mysql 全文搜索(转载http://blog.csdn.net/manbujingxin/article/details/6656992)

前提:mysql只支持英文内容的全文索引,所以只考虑英文的全文搜索.假定数据表名为post,有三列:id.title.content.id是自增长序号,title是varchar,content是text,给content添加全文索引. mysql全文搜索有三种模式: 一.自然语言查找.这是mysql默认的全文搜索方式,sql示例: 1 select  id,title FROM post WHERE MATCH(content) AGAINST ('search keyword') 或者显式声

用maven插件自动生成mybatis代码(转载http://blog.csdn.net/yinkgh/article/details/52512983)

1.在springmvc+mybatis项目的pom.xml文件中加如下内容,添加之后,maven会自动下载相关jar包,时间较长,需要耐心等待~~ <build> <plugins> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>

调整分区大小 转载--------------http://blog.csdn.net/perfectzq/article/details/73606119

centos7重新调整分区大小 centos 7 调整 root 和 home 的容量大小 查看磁盘的空间大小: df -h  备份/home : cp -r /home/ homebak/ 卸载? /home : umount /home  如果出现 home 存在进程,使用 fuser -m -v -i -k /home 终止 home 下的进程,最后使用 umount /home 卸载 /home 删除/home所在的lv : lvremove /dev/mapper/centos-hom