zoukankan      html  css  js  c++  java
  • Map排序工具类

    package com.csf.sam.util;
    
    import java.util.*;
    
    /**
     * Created by fenglei.ma on 2018/4/23. 23:03
     */
    public class CollectionTools {
    
        /**
         * 将map按照value值排序
         *
         * @param map
         * @param reverse true:倒序。false:正序。
         * @return
         */
        @SuppressWarnings({ "rawtypes", "unchecked" })
        public static Map sortByValue(Map map, final boolean reverse) {
            List list = new LinkedList(map.entrySet());
            Collections.sort(list, new Comparator() {
                public int compare(Object o1, Object o2) {
                    if (reverse) {
                        return -((Comparable) ((Map.Entry) o1).getValue())
                                .compareTo(((Map.Entry) o2).getValue());
                    }
                    return ((Comparable) ((Map.Entry) o1).getValue())
                            .compareTo(((Map.Entry) o2).getValue());
                }
            });
    
            Map result = new LinkedHashMap();
            for (Iterator it = list.iterator(); it.hasNext(); ) {
                Map.Entry entry = (Map.Entry) it.next();
                result.put(entry.getKey(), entry.getValue());
            }
            return result;
        }
    
        /**
         * 将map按照key值排序
         *
         * @param map
         * @param reverse true:倒序。false:正序。
         * @return
         */
        @SuppressWarnings({ "unchecked", "rawtypes" })
        public static Map sortByKey(Map map, final boolean reverse) {
            List list = new LinkedList(map.entrySet());
            Collections.sort(list, new Comparator() {
                public int compare(Object o1, Object o2) {
                    if (reverse) {
                        return -((Comparable) ((Map.Entry) o1).getKey())
                                .compareTo(((Map.Entry) o2).getKey());
                    }
                    return ((Comparable) ((Map.Entry) o1).getKey())
                            .compareTo(((Map.Entry) o2).getKey());
                }
            });
    
            Map result = new LinkedHashMap();
            for (Iterator it = list.iterator(); it.hasNext(); ) {
                Map.Entry entry = (Map.Entry) it.next();
                result.put(entry.getKey(), entry.getValue());
            }
            return result;
        }
    
    
        public static void main(String[] args) {
            Map<Integer, Integer> map = new HashMap<Integer, Integer>();
            map.put(1, 1);
            map.put(3, 3);
            map.put(2, 2);
    
            Map result = sortByKey(map, true);
            System.out.println(result);
            System.out.println(result.keySet());
    
            List<Integer> list = new ArrayList<Integer>();
            list.addAll(result.keySet());
            System.out.println(list);
        }
    }
  • 相关阅读:
    1 绪论
    3.4 向量空间及其子空间的的基与维数
    3.3 极大线性无关组以及&向量的秩
    3.2 线性相关与线性无关的向量组
    3.1 n维向量空间及其子空间
    2.6 拉普拉斯定理
    2.5 克拉默法则
    2.4 行列式按行(列)展开
    2.3 行列式的性质
    2.2 n阶行列式的定义
  • 原文地址:https://www.cnblogs.com/xiaolei2017/p/8929951.html
Copyright © 2011-2022 走看看