一、概述1.1 工具简介MapUtil 是 Hutool 中用于简化 Map 操作的工具类,它封装了大量静态方法,统一封装 Map 的创建、判断、转换、过滤、排序、合并、遍历等高频操作,替代冗长的原生 JDK 模板代码,减少重复、降低出错率。API:https://plus.hutool.cn/apidocs/cn/hutool/core/map/MapUtil.html1.2 引入依赖在使用Hutool工具之前,我们需要将Hutool添加到项目的依赖中。如果使用Maven构建项目,可以在 pom.xml 文件中添加以下依赖:!-- https://mvnrepository.com/artifact/cn.hutool/hutool-all --dependencygroupIdcn.hutool/groupIdartifactIdhutool-all/artifactId!-- 请检查最新版本,可以根据实际需要进行调整 --version5.8.40/version/dependencyHutool-all 是一个 Hutool 的集成打包产品,由于考虑到“懒人”用户及分不清各个模块作用的用户,“无脑”引入 hutool-all 模块是快速开始和深入应用的最佳方式。如果你想像 SpringBoot 一样引入 Hutool,再由子模块决定用到哪些模块,你可以在父模块中加入:dependencyManagementdependenciesdependencygroupIdcn.hutool/groupIdartifactIdhutool-bom/artifactIdversion${hutool.version}/versiontypepom/type!-- 注意这里是import --scopeimport/scope/dependency/dependencies/dependencyManagement然后再在子模块中就可以引入自己需要的模块了:dependenciesdependencygroupIdcn.hutool/groupIdartifactIdhutool-core/artifactId/dependency/dependencies二、Map 创建与初始化2.1 链式构建 builderbuilder 是 Hutool 的建造者模式链式构建 Map,底层返回 MapBuilder 对象,告别多次 new HashMap + 多次 put,代码更简洁,常用于接口参数组装、返回结果封装、测试构造数据。方法简要说明builder()空构建器,默认底层是 HashMapbuilder(K k, V v)初始化携带一个键值对builder(MapK,V map)基于已有Map继续追加put(包装原有Map)返回值都是 MapBuilder,支持链式调用。方法简要说明put(K key, V value)添加键值对,返回自身,支持链式putAll(Map map)批量加入另一个 Map 全部元素build()构建返回 Map 实例(默认 HashMap,可修改)buildImmutable()返回的 Map 不能新增、修改、删除 key,适合常量、返回结果防止外部篡改// 简单用法MapUtil.builder().put("name","张三").put("age",22).build();// 使用 builder 链式创建,非常直观MapString,Objectparams=MapUtil.builder(newHashMapString,Object()).put("appId","123456").put("timestamp",System.currentTimeMillis()).build();// builder 带初始键值对MapUtil.builder("count",100).put("total",200).build();// 基于已有 Map 追加元素MapUtil.builder(MapUtil.of("a","1")).put("b","2").build();2.2 快捷填充 of由键值对数组创建,适合快速构造小规模的键值对方法返回类型简要说明of(K key, V value)HashMap创建单个键值对的 HashMapof(K key, V value, boolean isOrder)HashMapLinkedHashMap单个键值对,isOrder=true 返回 LinkedHashMap,保留插入顺序of(Object[] array)HashMapObject,Object二维字符串数组构建 MapofEntries(Map.Entry… entries)根据 Entry 数组创建 Map// 单个键值对MapString,Stringsingle=MapUtil.of("key","value");// 二维数组构建MapObject,Objectcolors=MapUtil.of(newString[][]{{"RED","#FF0000"},{"GREEN","#00FF00"}});MapString,Integermap=MapUtil.ofEntries(Map.entry("a",1),Map.entry("b",2));
