zoukankan      html  css  js  c++  java
  • Map工具类,排序及转对象

    import com.alibaba.fastjson.JSON;
    import com.google.common.collect.Maps;
    
    import java.util.Map;
    
    /**
     * @ClassName MapUtil
     * @Author ZhangRF
     * @CreateDate 2020/08/12
     * @Decription
     */
    public class MapUtil {
        /**
         * 根据map的key排序
         *
         * @param map    待排序的map
         * @param isDesc 是否降序,true:降序,false:升序
         * @return 排序好的map
         * @author zero 2019/04/08
         */
        public static <K extends Comparable<? super K>, V> Map<K, V> sortByKey(Map<K, V> map, boolean isDesc) {
            Map<K, V> result = Maps.newLinkedHashMap();
            if (isDesc) {
                map.entrySet().stream().sorted(Map.Entry.<K, V>comparingByKey().reversed())
                        .forEachOrdered(e -> result.put(e.getKey(), e.getValue()));
            } else {
                map.entrySet().stream().sorted(Map.Entry.<K, V>comparingByKey())
                        .forEachOrdered(e -> result.put(e.getKey(), e.getValue()));
            }
            return result;
        }
    
        /**
         * 根据map的value排序
         *
         * @param map    待排序的map
         * @param isDesc 是否降序,true:降序,false:升序
         * @return 排序好的map
         * @author zero 2019/04/08
         */
        public static <K, V extends Comparable<? super V>> Map<K, V> sortByValue(Map<K, V> map, boolean isDesc) {
            Map<K, V> result = Maps.newLinkedHashMap();
            if (isDesc) {
                map.entrySet().stream().sorted(Map.Entry.<K, V>comparingByValue().reversed())
                        .forEach(e -> result.put(e.getKey(), e.getValue()));
            } else {
                map.entrySet().stream().sorted(Map.Entry.<K, V>comparingByValue())
                        .forEachOrdered(e -> result.put(e.getKey(), e.getValue()));
            }
            return result;
        }
    
        /**
         * map转对象
         *
         * @param map
         * @param clazz
         * @param <T>
         * @return
         */
        public static <T> T parse(Map<?, ?> map, Class<T> clazz) {
            return JSON.parseObject(JSON.toJSONString(map), clazz);
        }
    }
  • 相关阅读:
    jQuery基础
    深入理解JVM内存模型(jmm)和GC
    oracle,哪些操作会导致索引失效?
    systemd
    一个我小时候玩过的我是猪不然关机的软件,我高仿了一个,超简单。
    自己写的求最大值实现,用到了模板函数。
    poj 1695
    poj 1192
    poj 1239
    poj 1170
  • 原文地址:https://www.cnblogs.com/zhangrongfei/p/15667269.html
Copyright © 2011-2022 走看看