当前位置: 首页 > ds >正文

Map更简洁的编码构建

Map的链式构建需求

    jdk1.8,编码时需要手动构建一个Map

  • 传统Map构建方式

       - 声明列表,依次添加元素;

       - 利用匿名内部类 + 实例初始化块,比较简洁声明并添加元素

//1 先声明创建
Map<String, Object> createMap = new HashMap<>();//2 逐个添加元素
createMap.put("1", 1);
createMap.put("2", 2);
createMap.put("3", 3);//-------------------------------------------------//匿名内部类 + 实例初始化块:
Map<String, Object> createMap2 = new HashMap<String, Object>() {{put("1", 1);put("2", 2);put("3", 3);
}};

  • 链式构建

        -调用Builder链式调用put方法添加元素

Map<String, Object> buildMap = MapBuilder.<String, Object>builder().put("1", 1).put("2", 2).put("3", 3).build();

实现Map的链式构建

  • 定义MapBuilder工具类
  • 实现链式方法:put等
  • 返回最终构建的Map对象
import java.util.HashMap;
import java.util.Map;public class MapBuilder<K, V> {private final Map<K, V> map;private MapBuilder() {map = new HashMap<>();}public static <K, V> MapBuilder<K, V> builder() {return new MapBuilder<>();}public MapBuilder<K, V> put(K key, V value) {map.put(key, value);return this;}public Map<K, V> build() {return map;}
}

总结

  • 在方法传参时,或其他需要编码时创建一个Map时,可以利用该方法简略代码
  • 相较于声明再依次添加方案,链式调用更简略
  • 匿名内部类 + 实例初始化块的方案也比较简略,但是存在严重内存问题
http://www.xdnf.cn/news/7738.html

相关文章:

  • 【jzxxoj编程:4420: 寻找自我3】2022-1-30
  • 【免杀】C2免杀技术(七)远程线程注入
  • 使用SQLite Expert个人版VACUUM功能修复数据库
  • 【Linux】第二十一章 管理存储堆栈
  • 如何处理 collation 导致的索引失效 | OceanBase SQL调优实践
  • Redis中的事务和原子性
  • 汽车充电过程中--各个电压的关系(DeepSeek)
  • Dockerfile 实战:编写高效镜像的最佳实践与常见误区
  • AR 开启昆虫学习新视界,解锁奇妙微观宇宙
  • 重构研发效能:项目管理引领软件工厂迈向智能化
  • 汽车生产中的测试台连接 – EtherCAT 转CANopen高效的网关通信
  • PyTorch中单卡训练、DataParallel(DP)和DistributedDataParallel(DDP)
  • Python数据可视化再探——Matplotlib模块 之二
  • 香港科技大学(广州)智能制造理学硕士招生宣讲会——深圳大学专场
  • Android 万能AI证件照 v1.3.2
  • Python打卡训练营day27-函数-装饰器
  • 数据要素如何重构人力资本升级
  • HTML页面渲染过程
  • 【Linux】第二十三章 控制启动过程
  • 汇川PLC通过Profinet转ModbusTCP网关读取西门子PLC数据案例
  • 【c# 中 == 和jave 的== 区别】
  • idea中,git的cherry-pick怎么用
  • Linux:库与链接
  • 基于Qwen3-7B FP8与基石智算打造高性能本地智能体解决方案
  • 佰力博科技与您浅谈低温介电材料特性及应用分析
  • 基于 STM32 单片机的实验室多参数安全监测系统设计与实现
  • 怎样解决photoshop闪退问题
  • OpenCV图像边缘检测
  • 第12天-Python+Qt5开发实战:10大经典案例与深度解析
  • JVM的面试相关问题