map实现按value升序排序

代码如下:

/**
     * @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;
    }

(0)

相关推荐

  • Android 对Map按key和value分别排序的实例

    一. 理论准备 Map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等. TreeMap:基于红黑树(Red-Black tree)的 NavigableMap 实现,该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的构造方法. HashMap的值是没有顺序的,它是按照key的HashCode来实现的,对于这个无序的HashMap我们要怎么来实现排序呢?参照Tree

  • Android中实现HashMap排序的方法

    HashMap排序是数据结构与算法中常见的一种排序算法.本文即以Android平台为例来实现该算法. 具体代码如下: public static void main(String[] args) { Map<String, Integer> map = new HashMap<String, Integer>(); map.put("lisi", 5); map.put("lisi1", 1); map.put("lisi2&quo

  • map实现按value升序排序

    复制代码 代码如下: /**     * @param h     * @return     * 实现对map按照value升序排序     */    @SuppressWarnings("unchecked")    public static Map.Entry[] getSortedHashtableByValue(Map h) {        Set set = h.entrySet();        Map.Entry[] entries = (Map.Entry[]

  • 浅析stl序列容器(map和set)的仿函数排序

    问题:set是一个自动有序的集合容器,这是set的一个最实惠的性质,从小到大,只要你插入进去,就有序了.但是,如果你不想要这个顺序呢,是不是可以人为控制set容器的元素顺序呢?答案是,可以的,因为stl也是程序员设计的. 首先看stl的模板构造函数 复制代码 代码如下: explicit set ( const Compare& comp = Compare(), const Allocator& = Allocator() );templateset ( InputIterator fi

  • java8 stream 操作map根据key或者value排序的实现

    引言 最近小编自己一个人在负责一个项目的后台开发,其中有一部分是统计相关的功能,所以需要一些排序或者分组的操作,之前这种操作小编觉得还是比较麻烦的,虽热有一些现成的工具类,但是工具类的写法也是比较复杂的,但是如果使用java8 stream流的话就比较简单了,并且代码量会大大的减少,下面总结几个对map的操作. 1.map 根据value排序 Map<String,BigDecimal> map =new HashMap<>(); map.put("one",

  • php数组函数序列之ksort()对数组的元素键名进行升序排序,保持索引关系

    ksort()定义和用法 ksort() 函数按照键名对数组升序排序,为数组值保留原来的键. 可选的第二个参数包含附加的排序标志. 若成功,则返回 TRUE,否则返回 FALSE. 语法 ksort(array,sorttype)参数 描述 array 必需.规定要排序的数组. sorttype 可选.规定如何排列数组的值.可能的值: SORT_REGULAR - 默认.以它们原来的类型进行处理(不改变类型). SORT_NUMERIC - 把值作为数字来处理 SORT_STRING - 把值作

  • Python实现连接两个无规则列表后删除重复元素并升序排序的方法

    本文实例讲述了Python实现连接两个无规则列表后删除重复元素并升序排序的方法.分享给大家供大家参考,具体如下: # -*- coding:utf-8 -*- #! python2 list_one=[3,6,2,17,7,33,11,7] list_two=[1,2,3,7,4,2,17,33,11] list_new=list_one+list_two list=[] i=0 for x in list_new : if x not in list : list.append(x) list

  • Java中对list map根据map某个key值进行排序的方法

    实例如下所示: package test; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Map; public class java_ListMapSort { public static void main(String[] args)

  • C语言冒泡排序法的实现(升序排序法)

    任务代码: 数字的排序: #include <stdio.h> #define SIZE 10 int main() { int a[SIZE]={12 ,43,9,13,67,98,101,89,3,35};//十个数的无序数列 int i,j,t; printf("此程序使用冒泡排序法排列无序数列!\n"); //冒泡排序 for(i=0;i<10-1;i++)//n个数的数列总共扫描n-1次 { for(j=0;j<10-i-1;j++)//每一趟扫描到a

  • php数组函数序列之sort() 对数组的元素值进行升序排序

    sort()定义和用法 sort() 函数按升序对给定数组的值排序. 注释:本函数为数组中的单元赋予新的键名.原有的键名将被删除. 如果成功则返回 TRUE,否则返回 FALSE. 语法 sort(array,sorttype)参数 描述 array 必需.输入的数组. sorttype 可选.规定如何排列数组的值.可能的值: SORT_REGULAR - 默认.以它们原来的类型进行处理(不改变类型). SORT_NUMERIC - 把值作为数字来处理 SORT_STRING - 把值作为字符串

  • golang 实现对Map进行键值自定义排序

    看代码吧~ //自定义结构体,用来自定义排序 type RecentlyUpdateListMapSorter []map[string]interface{} //根据MapSorter.Keys进行倒序排序 func (ms *RecentlyUpdateListMapSorter) SortReverse() { sort.Sort(sort.Reverse(ms)) } //自定义排序方法(Len(),Less(),Swap()) func (ms *RecentlyUpdateList

  • php数组函数序列之asort() - 对数组的元素值进行升序排序,保持索引关系

    asort() 定义和用法 asort() 函数对数组进行排序并保持索引关系.主要用于对那些单元顺序很重要的结合数组进行排序. 可选的第二个参数包含了附加的排序标识. 如果成功则返回 TRUE,否则返回 FALSE. 语法 asort(array,sorttype)参数 描述 array 必需.输入的数组. sorttype 可选.规定如何排列数组的值.可能的值: SORT_REGULAR - 默认.以它们原来的类型进行处理(不改变类型). SORT_NUMERIC - 把值作为数字来处理 SO

随机推荐