类 MapUtils


  • public class MapUtils
    extends cn.hutool.core.map.MapUtil
    Map工具类
    从以下版本开始:
    2018年1月26日
    作者:
    ylyue
    • 字段详细资料

      • FINAL_EMPTY_JSON

        public static final com.alibaba.fastjson.JSONObject FINAL_EMPTY_JSON
        不可变的空Json常量
    • 构造器详细资料

      • MapUtils

        public MapUtils()
    • 方法详细资料

      • isKeys

        public static boolean isKeys​(Map<String,​Object> paramMap,
                                     String[] mustContainKeys,
                                     String... canContainKeys)
        判断Map数据结构key的一致性
        参数:
        paramMap - 参数
        mustContainKeys - 必须包含的key(必传)
        canContainKeys - 可包含的key(非必传)
        返回:
        是否满足条件
      • isKeysEqual

        public static boolean isKeysEqual​(Map<String,​Object> paramMap,
                                          String[] keys)
        判断Map数据结构所有的key是否与数组完全匹配
        参数:
        paramMap - 需要确认的Map
        keys - 条件
        返回:
        匹配所有的key且大小一致(true)
      • isContainsOneOfKey

        public static boolean isContainsOneOfKey​(Map<String,​Object> paramMap,
                                                 String[] keys)
        判断Map数据结构是否包含 keys 之一
        参数:
        paramMap - 需要确认的Map
        keys - 条件
        返回:
        只要包含一个key(true)
      • isMapsKeys

        public static boolean isMapsKeys​(Map<String,​Object>[] paramMaps,
                                         String[] keys)
        判断Map数组第一个元素,是否包含所有的key

        弱比较,只判断数组中第一个元素是否包含所有的key

        参数:
        paramMaps - 需要确认的Map数组
        keys - 条件数组
        返回:
        Map数组元素0包含所有的key(true)
      • isEmptys

        public static boolean isEmptys​(Map<String,​Object>[] paramMaps)
        判断Map数组是否为空

        弱判断,只确定数组中第一个元素是否为空

        参数:
        paramMaps - 要判断的Map[]数组
        返回:
        Map数组==null或长度==0或第一个元素为空(true)
      • isStringValueEmpty

        public static boolean isStringValueEmpty​(Map<String,​Object> paramMap)
        判断Map是否为空,或者Map中String类型的value值是否为空
        参数:
        paramMap - 要判断的Map
        返回:
        value值是否为空
      • trimStringValues

        public static void trimStringValues​(Map<String,​Object> paramMap)
        删除Value字符串前后空格
        参数:
        paramMap - 需要处理的map
      • remove

        public static void remove​(Map<String,​Object> paramMap,
                                  String[] keys)
        批量移除
        参数:
        paramMap - 要操作的Map
        keys - 被移除的key数组
      • removeEmpty

        public static void removeEmpty​(Map<String,​Object> paramMap)
        移除空对象
        参数:
        paramMap - 要操作的Map
      • removeBlankStr

        public static void removeBlankStr​(Map<String,​Object> paramMap)
        移除空白字符串

        空白的定义如下:
        1、为null
        2、为不可见字符(如空格)
        3、""

        参数:
        paramMap - 要操作的Map
      • replaceKey

        public static void replaceKey​(Map<String,​Object> paramMap,
                                      String key,
                                      String replaceKey)
        替换key
        参数:
        paramMap - 要操作的Map
        key - 被替换的key
        replaceKey - 替换的key
      • keyList

        public static List<String> keyList​(Map<String,​Object> paramMap)
        获取所有的key
        参数:
        paramMap - 需要获取keys的map
        返回:
        keyList
      • getJSONObject

        public static com.alibaba.fastjson.JSONObject getJSONObject​(Map<String,​Object> paramMap,
                                                                    String... keys)
        以安全的方式从Map中获取一组数据,组合成一个新的JSONObject
        参数:
        paramMap - 需要从中获取数据的map
        keys - 获取的keys
        返回:
        结果
      • getObject

        public static <T> T getObject​(Map<?,​?> paramMap,
                                      Object key,
                                      Class<T> clazz)
        以安全的方式从Map中获取对象
        类型参数:
        T - 泛型
        参数:
        paramMap - 参数map
        key - key
        clazz - 泛型类型
        返回:
        结果
      • getNumber

        public static Number getNumber​(Map<?,​?> paramMap,
                                       Object key)
        以安全的方式从Map中获取Number
        参数:
        paramMap - 参数map
        key - key
        返回:
        结果
      • getString

        public static String getString​(Map<?,​?> paramMap,
                                       Object key)
        以安全的方式从Map中获取字符串
        参数:
        paramMap - 参数map
        key - key
        返回:
        结果
      • getBoolean

        public static Boolean getBoolean​(Map<?,​?> paramMap,
                                         Object key)
        以安全的方式从Map中获取Boolean
        参数:
        paramMap - 参数map
        key - key
        返回:
        结果
      • getInteger

        public static Integer getInteger​(Map<?,​?> paramMap,
                                         Object key)
        以安全的方式从Map中获取Integer
        参数:
        paramMap - 参数map
        key - key
        返回:
        结果
      • getLong

        public static Long getLong​(Map<?,​?> paramMap,
                                   Object key)
        以安全的方式从Map中获取Long
        参数:
        paramMap - 参数map
        key - key
        返回:
        结果
      • getDouble

        public static Double getDouble​(Map<?,​?> paramMap,
                                       Object key)
        以安全的方式从Map中获取Double
        参数:
        paramMap - 参数map
        key - key
        返回:
        结果
      • getBigDecimal

        public static BigDecimal getBigDecimal​(Map<?,​?> paramMap,
                                               Object key)
        以安全的方式从Map中获取BigDecimal
        参数:
        paramMap - 参数map
        key - key
        返回:
        结果
      • getJSONObject

        public static com.alibaba.fastjson.JSONObject getJSONObject​(Map<?,​?> paramMap,
                                                                    String key)
        以安全的方式从Map中获取JSONObject
        参数:
        paramMap - 参数map
        key - key
        返回:
        结果
      • getJSONArray

        public static com.alibaba.fastjson.JSONArray getJSONArray​(Map<?,​?> paramMap,
                                                                  String key)
        以安全的方式从Map中获取JSONArray
        参数:
        paramMap - 参数map
        key - key
        返回:
        结果
      • toCamelCase

        public static com.alibaba.fastjson.JSONObject toCamelCase​(Object param)
        属性命名策略转换-驼峰命名法
        参数:
        param - Json参数 或 POJO对象
        返回:
        经过属性命名策略转换后的 JSONObject
      • toUnderlineCase

        public static com.alibaba.fastjson.JSONObject toUnderlineCase​(Object param)
        属性命名策略转换-下划线命名法
        参数:
        param - Json参数 或 POJO对象
        返回:
        经过属性命名策略转换后的 JSONObject
      • toSnakeCase

        public static com.alibaba.fastjson.JSONObject toSnakeCase​(Object param)
        属性命名策略转换-下划线命名法
        参数:
        param - Json参数 或 POJO对象
        返回:
        经过属性命名策略转换后的 JSONObject
      • toPropertyNamingStrategy

        public static com.alibaba.fastjson.JSONObject toPropertyNamingStrategy​(Object param,
                                                                               com.alibaba.fastjson.PropertyNamingStrategy propertyNamingStrategy)
        属性命名策略转换
        参数:
        param - Json参数 或 POJO对象
        propertyNamingStrategy - 属性命名策略
        返回:
        经过属性命名策略转换后的 JSONObject
      • listPOJOExtractKeyToList

        public static <T> Map<String,​List<T>> listPOJOExtractKeyToList​(List<T> objectList,
                                                                             String key)
        将指定值提取出来作为map key,map的值为相同key值的list

        例:一个用户集合中的对象有key、name、sex

        数据1:key:1,name:张三,sex:man

        数据2:key:2,name:李四,sex:woman

        数据3:key:3,name:王五,sex:man

        方法调用:ListPOJOExtractKeyToList(list,"sex");

        处理后返回结果为一个map,值为一个list,json表示为:

        {"man":[{"key":"1","name":"张三","sex":"man"},{"key":"3","name":"王五","sex":"man"}],

        "woman":[{"key":"2","name":"李四","sex":"woman"}]}

        参数:
        objectList - 对象list
        返回:
        key为map key的键值对
      • listPOJOExtractKeyToPOJO

        public static <T> Map<String,​T> listPOJOExtractKeyToPOJO​(List<T> objectList,
                                                                       String key)

        将list对象中数据提取为单个map键值对

        注:如果有相同的key时,后面的值会覆盖第一次出现的key对应的值

        例:一个用户集合中的对象有key、name、sex

        数据1:key:1,name:张三,sex:man

        数据2:key:2,name:李四,sex:woman

        数据3:key:3,name:王五,sex:man

        方法调用:ListPOJOExtractKeyToList(list,"key");

        处理后返回结果为一个map,值为一个对象,json表示为:

        {"1":{"key":"1","name":"张三","sex":"man"},"2":{"key":"2","name":"李四","sex":"woman"},"3":{"key":"3","name":"王五","sex":"man"}}

        类型参数:
        T - 泛型对象
        参数:
        objectList - list数据
        key - 需要提取的key
        返回:
        Map<String, T>