类 MapUtils


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

      字段 
      修饰符和类型 字段 说明
      static com.alibaba.fastjson.JSONObject FINAL_EMPTY_JSON
      不可变的空Json常量
      • 从类继承的字段 cn.hutool.core.map.MapUtil

        DEFAULT_INITIAL_CAPACITY, DEFAULT_LOAD_FACTOR
    • 构造器概要

      构造器 
      构造器 说明
      MapUtils()  
    • 方法概要

      所有方法 静态方法 具体方法 
      修饰符和类型 方法 说明
      static java.math.BigDecimal getBigDecimal​(java.util.Map<?,​?> paramMap, java.lang.Object key)
      以安全的方式从Map中获取BigDecimal
      static java.lang.Boolean getBoolean​(java.util.Map<?,​?> paramMap, java.lang.Object key)
      以安全的方式从Map中获取Boolean
      static java.lang.Double getDouble​(java.util.Map<?,​?> paramMap, java.lang.Object key)
      以安全的方式从Map中获取Double
      static java.lang.Integer getInteger​(java.util.Map<?,​?> paramMap, java.lang.Object key)
      以安全的方式从Map中获取Integer
      static com.alibaba.fastjson.JSONArray getJSONArray​(java.util.Map<?,​?> paramMap, java.lang.String key)
      以安全的方式从Map中获取JSONArray
      static com.alibaba.fastjson.JSONObject getJSONObject​(java.util.Map<?,​?> paramMap, java.lang.String key)
      以安全的方式从Map中获取JSONObject
      static com.alibaba.fastjson.JSONObject getJSONObject​(java.util.Map<java.lang.String,​java.lang.Object> paramMap, java.lang.String... keys)
      以安全的方式从Map中获取一组数据,组合成一个新的JSONObject
      static java.lang.Long getLong​(java.util.Map<?,​?> paramMap, java.lang.Object key)
      以安全的方式从Map中获取Long
      static java.lang.Number getNumber​(java.util.Map<?,​?> paramMap, java.lang.Object key)
      以安全的方式从Map中获取Number
      static <T> T getObject​(java.util.Map<?,​?> paramMap, java.lang.Object key, java.lang.Class<T> clazz)
      以安全的方式从Map中获取对象
      static java.lang.String getString​(java.util.Map<?,​?> paramMap, java.lang.Object key)
      以安全的方式从Map中获取字符串
      static boolean isContainsOneOfKey​(java.util.Map<java.lang.String,​java.lang.Object> paramMap, java.lang.String[] keys)
      判断Map数据结构是否包含 keys 之一
      static boolean isEmptys​(java.util.Map<java.lang.String,​java.lang.Object>[] paramMaps)
      判断Map数组是否为空
      static boolean isKeys​(java.util.Map<java.lang.String,​java.lang.Object> paramMap, java.lang.String[] mustContainKeys, java.lang.String... canContainKeys)
      判断Map数据结构key的一致性
      static boolean isKeysEqual​(java.util.Map<java.lang.String,​java.lang.Object> paramMap, java.lang.String[] keys)
      判断Map数据结构所有的key是否与数组完全匹配
      static boolean isMapsKeys​(java.util.Map<java.lang.String,​java.lang.Object>[] paramMaps, java.lang.String[] keys)
      判断Map数组第一个元素,是否包含所有的key
      static boolean isStringValueEmpty​(java.util.Map<java.lang.String,​java.lang.Object> paramMap)
      判断Map是否为空,或者Map中String类型的value值是否为空
      static java.util.List<java.lang.String> keyList​(java.util.Map<java.lang.String,​java.lang.Object> paramMap)
      获取所有的key
      static <T> java.util.Map<java.lang.String,​java.util.List<T>> listPOJOExtractKeyToList​(java.util.List<T> objectList, java.lang.String key)
      将指定值提取出来作为map key,map的值为相同key值的list
      static <T> java.util.Map<java.lang.String,​T> listPOJOExtractKeyToPOJO​(java.util.List<T> objectList, java.lang.String key)
      将list对象中数据提取为单个map键值对
      static void remove​(java.util.Map<java.lang.String,​java.lang.Object> paramMap, java.lang.String[] keys)
      批量移除
      static void removeBlankStr​(java.util.Map<java.lang.String,​java.lang.Object> paramMap)
      移除空白字符串
      static void removeEmpty​(java.util.Map<java.lang.String,​java.lang.Object> paramMap)
      移除空对象
      static void replaceKey​(java.util.Map<java.lang.String,​java.lang.Object> paramMap, java.lang.String key, java.lang.String replaceKey)
      替换key
      static com.alibaba.fastjson.JSONObject toCamelCase​(java.lang.Object param)
      属性命名策略转换-驼峰命名法
      static com.alibaba.fastjson.JSONObject toPropertyNamingStrategy​(java.lang.Object param, com.alibaba.fastjson.PropertyNamingStrategy propertyNamingStrategy)
      属性命名策略转换
      static com.alibaba.fastjson.JSONObject toSnakeCase​(java.lang.Object param)
      属性命名策略转换-下划线命名法
      static com.alibaba.fastjson.JSONObject toUnderlineCase​(java.lang.Object param)
      属性命名策略转换-下划线命名法
      static void trimStringValues​(java.util.Map<java.lang.String,​java.lang.Object> paramMap)
      删除Value字符串前后空格
      • 从类继承的方法 cn.hutool.core.map.MapUtil

        builder, builder, builder, createMap, createProxy, defaultIfEmpty, emptyIfNull, filter, filter, filter, get, get, getAny, getBool, getChar, getDate, getFloat, getInt, getShort, getStr, isEmpty, isNotEmpty, join, join, joinIgnoreNull, newConcurrentHashMap, newConcurrentHashMap, newConcurrentHashMap, newHashMap, newHashMap, newHashMap, newHashMap, newIdentityMap, newTreeMap, newTreeMap, of, of, of, removeAny, removeNullValue, renameKey, reverse, sort, sort, sortJoin, toCamelCaseMap, toListMap, toMapList, toObjectArray, wrap
      • 从类继承的方法 java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • 字段详细资料

      • FINAL_EMPTY_JSON

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

      • MapUtils

        public MapUtils()
    • 方法详细资料

      • isKeys

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        public static <T> java.util.Map<java.lang.String,​java.util.List<T>> listPOJOExtractKeyToList​(java.util.List<T> objectList,
                                                                                                           java.lang.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> java.util.Map<java.lang.String,​T> listPOJOExtractKeyToPOJO​(java.util.List<T> objectList,
                                                                                           java.lang.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