news 2026/4/18 4:28:15

Java中Map的多种用法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Java中Map的多种用法

1. 创建:5 种一行写法

// ① 传统 Map<String, Integer> map = new HashMap<>(); // ② 不可变(JDK 9+) Map<String, Integer> map = Map.of("a", 1, "b", 2); // ③ 函数式(JDK 8+) Map<String, Integer> map = Stream.of(new Object[][]{{"a", 1}, {"b", 2}}) .collect(Collectors.toMap(o -> (String) o[0], o -> (Integer) o[1])); // ④ Guava 可变 Map<String, Integer> map = Maps.newHashMap(); // ⑤ Guava 不可变 Map<String, Integer> map = ImmutableMap.of("a", 1, "b", 2);

2. 读写:日常 API

map.put("k", 1); // 存 map.get("k"); // 取 map.getOrDefault("k", 0); // 防 NPE map.remove("k"); // 删 map.containsKey("k"); // 判断 map.size(); // 大小

3. 遍历:4 种姿势

// ① entrySet(最快) for (Map.Entry<String, Integer> e : map.entrySet()) { System.out.println(e.getKey() + "=" + e.getValue()); } // ② Java 8 Lambda map.forEach((k, v) -> System.out.println(k + "=" + v)); // ③ keySet for (String k : map.keySet()) { System.out.println(k + "=" + map.get(k)); } // ④ Stream map.entrySet().stream() .filter(e -> e.getValue() > 10) .forEach(e -> System.out.println(e.getKey()));

4. 计算型 Map:merge / compute

// 计数器:单词出现次数 map.merge(word, 1, Integer::sum); // 累加:key 对应的值 + delta map.compute(key, (k, v) -> v == null ? delta : v + delta);

5. 线程安全:3 种锁策略

// ① 全表锁(慢) Map<String, Integer> map = new Hashtable<>(); // ② 分段锁(快) Map<String, Integer> map = new ConcurrentHashMap<>(); // ③ 不可变(无锁) Map<String, Integer> map = ImmutableMap.of("a", 1);

6. 顺序 Map:3 种有序实现

// ① 插入顺序 Map<String, Integer> map = new LinkedHashMap<>(); // ② 访问顺序(LRU) Map<String, Integer> map = new LinkedHashMap<>(16, 0.75f, true); // ③ 排序顺序 Map<String, Integer> map = new TreeMap<>(); // 自然序 Map<String, Integer> map = new TreeMap<>(Comparator.reverseOrder()); // 倒序

7. 空值友好:Optional 链

String name = Optional.ofNullable(map.get("k")) .map(String::valueOf) .orElse("");

8. 黑科技:Map 当作函数缓存

Map<String, Function<Integer, Integer>> funcMap = Map.of( "square", x -> x * x, "cube", x -> x * x * x ); int result = funcMap.getOrDefault("square", x -> x).apply(5); // 25

9. 一行记忆

“HashMap 日常,LinkedHashMap 顺序,TreeMap 排序,ConcurrentHashMap 并发,ImmutableMap 只读,merge 计数,Optional 防空!”

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/10 22:08:57

终极歌单迁移指南:3步轻松将网易云/QQ音乐歌单转至苹果音乐

终极歌单迁移指南&#xff1a;3步轻松将网易云/QQ音乐歌单转至苹果音乐 【免费下载链接】GoMusic 迁移网易云/QQ音乐歌单至 Apple/Youtube/Spotify Music 项目地址: https://gitcode.com/gh_mirrors/go/GoMusic 还在为不同音乐平台间的歌单迁移而烦恼吗&#xff1f;GoMu…

作者头像 李华
网站建设 2026/4/8 5:10:15

二进制数据解析终极指南:快速掌握文件格式解析技巧

二进制数据解析终极指南&#xff1a;快速掌握文件格式解析技巧 【免费下载链接】binary-parser A blazing-fast declarative parser builder for binary data 项目地址: https://gitcode.com/gh_mirrors/bi/binary-parser 在当今数据驱动的世界中&#xff0c;二进制数据…

作者头像 李华
网站建设 2026/3/26 21:12:03

Krita配置全攻略:数字艺术家的5个关键设置技巧

Krita配置全攻略&#xff1a;数字艺术家的5个关键设置技巧 【免费下载链接】krita Krita is a free and open source cross-platform application that offers an end-to-end solution for creating digital art files from scratch built on the KDE and Qt frameworks. 项目…

作者头像 李华
网站建设 2026/4/17 2:27:15

AI写作革命:解锁长篇小说创作的全新可能

AI写作革命&#xff1a;解锁长篇小说创作的全新可能 【免费下载链接】AI_NovelGenerator 使用ai生成多章节的长篇小说&#xff0c;自动衔接上下文、伏笔 项目地址: https://gitcode.com/GitHub_Trending/ai/AI_NovelGenerator 你是否曾经在深夜面对空白文档&#xff0c;…

作者头像 李华
网站建设 2026/4/17 4:45:51

不止于陪伴:全新社交体验平台,独创“线上即时陪伴+线下实体体验+兴趣组局”三维模式

平台打造线上线下融合的陪伴社交服务&#xff0c;提供语聊、游戏陪玩、线下门店体验及兴趣组局等多元化场景。采用PHPMySQL技术架构&#xff0c;实现多端数据同步。特色包括真人认证的助娱;服务矩阵、智能匹配系统、严格的管理后台审核机制&#xff0c;以及独创的线上线下组局三…

作者头像 李华
网站建设 2026/4/7 19:09:02

哈曼卡顿HK CITATION 500 无线有源音箱拆解过程图解​

署名 浙江 方位 一台哈曼卡顿HK CITATION 500 型无线有源音箱触摸屏无显示&#xff0c;音箱也无声音输出。经过拆解&#xff0c;观察到有关连接线震松接触不良&#xff0c;经过重新插紧音箱内所有连接线&#xff0c;音箱故障排除&#xff0c;恢复正常工作。百度上找不到该音箱…

作者头像 李华