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

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

 1 /**
 2      * map 集合排序
 3      * @param map
 4      * @return
 5      */
 6     public static <K, V extends Comparable<? super V>> Map<K, V> sortMap(Map<K, V> map)
 7     {
 8         List<Map.Entry<K, V>> list = new LinkedList<Map.Entry<K, V>>(map.entrySet());
 9         Collections.sort(list, new Comparator<Map.Entry<K, V>>()
10         {
11             public int compare(Map.Entry<K, V> o1, Map.Entry<K, V> o2)
12             {
13                 // 按照 value进行排序
14                 return (o2.getValue()).compareTo(o1.getValue());  // 20 ,3,1 倒叙
15 //                return (o1.getValue()).compareTo(o2.getValue());  // 1 ,3,20 正序
16                 // 按照key 进行排序
17 //                return ((String) o1.getKey()).compareTo((String) o2.getKey());  // k1 ,k2,k3 正序
18 //                return ((String) o2.getKey()).compareTo((String) o1.getKey());  // k3 ,k2,k1  倒叙
19             }
20         });
21
22         Map<K, V> result = new LinkedHashMap<K, V>();
23         for (Map.Entry<K, V> entry : list)
24         {
25             result.put(entry.getKey(), entry.getValue());
26         }
27         return result;
28     }

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

时间: 2024-10-26 10:54:59

Map集合按照value和key进行排序的相关文章

根据map中的某一key进行排序(快速排序实现)

/** * @author Gaoxl * 根据key值排序,要求key值能够转为Long类型(快速排序) * @param maps * @param key * @return */ public static void sort(Map<String,Object>[] maps,String key,int start,int end){ if(start < end){ int mid = divide(maps,key,start,end); sort(maps,key,st

js获取Map集合里的key和value

js中获取Map集合的key和value 遍历Map集合获得所有的key和value

Map集合以及Collections集合工具类

一.Collection集合主要特点与Map集合的区别 Collection: 单列集合:有两个子接口 List集合元素是有序的,可以重复的 Set集合元素是无序的,不可以重复 List:元素可重复,有序 ArrayList:底层数据结构是数组,查询快,增删慢,不同步,线程不安全,效率高:没有特殊说明一般使用ArrayList集合: Vector:底层数据结构是数组,查询快,增删慢,同步,线程安全,效率低:有一个elements()特有迭代方法: LinkedList:底层数据结构是链表,查询慢

java学习笔记—集合之Map集合

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; text-align: center; font: 12.0px Times } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Songti SC" } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Times } p.p4 { margin: 0.0px 0.0px 0.0px 0.0

14.5 Map集合

1.概述 Map集合没有继承Collection接口,其提供的 key到value的映射.Map中不能包含相同的key,每个key只能映射到一个value.key还决定了存储对象在映射中的存储位置,但不是由key对象本身决定的,而是通过一种"散列技术"进行处理,产生一个散列码的整数值.散列码通常用做一个偏移量,该偏移量对应分配给映射的内存区域的起始位置,从而确定存储对象在映射中的存储位置.Map集合包括Map接口以及Map接口的所有实现类. 2.Map接口 a.Map集合中允许值对象是

Java Map集合利用比较器Comparator根据Key和Value的排序

TreeMap排序 根据Key进行排序 Map的根据key排序需要用到TreeMap对象,因为它是默认按照升序进行输出的,可以使用比较器compareTo对它进行降序排序,Comparator可以对集合对象或者数组进行排序的比较器接口,实现该接口的public compare(T o1,To2)方法即可实现排序,该方法主要是根据第一个参数o1,小于.等于或者大于o2分别返回负整数.0或者正整数,若是按照升序可以直接省略比较器代码Map<String, String> treeMap = new

java如何对map进行排序详解(map集合的使用)

今天做统计时需要对X轴的地区按照地区代码(areaCode)进行排序,由于在构建XMLData使用的map来进行数据统计的,所以在统计过程中就需要对map进行排序. 一.简单介绍Map 在讲解Map排序之前,我们先来稍微了解下map.map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等.其中这四者的区别如下(简单介绍): HashMap:我们最常用的Map,它根据key的HashCode 值来存储数据,根据key可以直接

java8新特性:对map集合排序

一.简单介绍Map 在讲解Map排序之前,我们先来稍微了解下map.map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等.其中这四者的区别如下(简单介绍): HashMap:我们最常用的Map,HashMap是无序的,它根据key的HashCode 值来存储数据,根据key可以直接获取它的Value,同时它具有很快的访问速度.HashMap最多只允许一条记录的key值为Null(多条会覆盖);允许多条记录的Value为

Java 实现Map集合排序功能

第一步:Map中新增sort临时键 // 初始化Map集合 List<Map<String, String>> columns = new ArrayList<Map<String, String>>(); Map<String, String> c1 = new HashMap<String,String>(); c1.put("sort", "8"); c1.put("title&