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); } }