`

利用map的value进行排序

    博客分类:
  • java
阅读更多
2009-03-19 playfish (架构师)

map内部是按照hash算法存储的,但如果能对map排序在某些时候还是有用的。
Java代码

   1. /**
   2.     * @param h
   3.     * @return
   4.     * 实现对map按照value升序排序
   5.     */ 
   6.    @SuppressWarnings("unchecked") 
   7.    public static Map.Entry[] getSortedHashtableByValue(Map h) { 
   8.        Set set = h.entrySet(); 
   9.        Map.Entry[] entries = (Map.Entry[]) set.toArray(new Map.Entry[set 
  10.                .size()]); 
  11.        Arrays.sort(entries, new Comparator() { 
  12.            public int compare(Object arg0, Object arg1) { 
  13.                Long key1 = Long.valueOf(((Map.Entry) arg0).getValue().toString()); 
  14.                Long key2 = Long.valueOf(((Map.Entry) arg1).getValue().toString()); 
  15.                return key1.compareTo(key2); 
  16.            } 
  17.        }); 
  18.  
  19.        return entries; 
  20.    } 
分享到:
评论

相关推荐

    Mapreduce实验报告.doc

    一个被分配了map任务的worker读取一个split集,该worker从这个split集中 分析出key/value对,然后有map函数来处理这些key/value对并得到中间key/val ue对,这些key/value对将最终存放在map worker的本地硬盘上。...

    leetcode3sumnlogn-LeetCode:刷LeetCode题目思路

    leetcode 3sum nlogn LeetCode 刷LeetCode题目思路 ...若返回为数值之和,而不是下标,则需要先将数组中的数字进行排序,目的在于之后可以去重。复杂度为n2。 但应该来说会存在一个NlogN复杂度的方法

    百度开源的万亿量级数据库系统 ​Tera.zip

    支持内存表动态schema支持表格快照高效随机读写数据模型Tera使用了bigtable的数据模型,可以将一张表格理解为这样一种数据结构:map, map, map> > 其中RowKey、ColumnFamily、Qualifier和Value是字符串,Timestamp...

    ArcGIS开发教程

    1.3.26. 如何利用用户定义的规则创建定制的排序 78 1.3.27. 如何实现在ArcMap上进行属性查询(Identify) 84 1.3.28. 如何设置和修改层的数据源 87 1.4. Display 88 1.4.1. 如何实现在ArcMap中放大缩小地图 88 1.4.2. ...

    freemarker总结

    对sequence 按里面的对象的属性value进行排序 如: sequence里面放入的是10 个user对象,user对象里面包含name,age等属性 sequence?sort_by(name) 表示所有的user按user.name进行排序 hashes内置方法 hash?keys 返回...

    PHP中使用BigMap实例

    //所谓的Bit-map就是用一个bit位来标记某个元素对应的Value, 而Key即是该元素。由于采用了Bit为单位来存储数据,因此在存储空间方面,可以大大节省。 /* 若 N =1 ; 申请内存空间为 int a[2] ; 假设需要排序或者查找...

    java 面试题 总结

    Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。 10、&和&&的区别。 &是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and)。 11、HashMap...

    超级有影响力霸气的Java面试题大全文档

    Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。 13、&和&&的区别。 &是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and)。 14、...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part4

     10.3.1 区分值(Value)类型和实体(Entity)类型  10.3.2 在应用程序中访问具有组成关系的持久化类  10.4 映射复合组成关系  10.5 小结  10.6 思考题 第11章 Hibernate的映射类型  11.1 Hibernate的内置映射...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

     10.3.1 区分值(Value)类型和实体(Entity)类型  10.3.2 在应用程序中访问具有组成关系的持久化类  10.4 映射复合组成关系  10.5 小结  10.6 思考题 第11章 Hibernate的映射类型  11.1 Hibernate的内置映射...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part3

     10.3.1 区分值(Value)类型和实体(Entity)类型  10.3.2 在应用程序中访问具有组成关系的持久化类  10.4 映射复合组成关系  10.5 小结  10.6 思考题 第11章 Hibernate的映射类型  11.1 Hibernate的内置映射...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part1.rar

     10.3.1 区分值(Value)类型和实体(Entity)类型  10.3.2 在应用程序中访问具有组成关系的持久化类  10.4 映射复合组成关系  10.5 小结  10.6 思考题 第11章 Hibernate的映射类型  11.1 Hibernate的内置映射...

    JAVA面试题最全集

    50.JAVA语言如何进行异常处理,关键字:thorws,throw,try,catch,finally 51.Object类(或者其子类)的finalize()方法在什么情况下被调用? 52.一个“.java”原文件中是否可以包括多个类(不是内部类)? 53.掌握...

    达内 coreJava 习题答案

    4、利用for循环打印 9*9 表? 1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*...

Global site tag (gtag.js) - Google Analytics