CodeGym
AI Academy
促销
CodeGym University
学习
课程
任务
调查 & 测验
游戏
帮助
日程
社区
Users
论坛
聊天
文章
成功故事
动态
评价
订阅
浅色主题

课时

  • 评论
  • 关于我们
开始
开始学习
立即开始学习
  • 我的进度
  • 课程
  • 任务地图
  • 课程
  • List.of, Set.of, Map.of — 不可变集合

    JAVA 25 SELF
    等级 34,课时 0
    本讲解读 Java 9+ 中的不可变集合:工厂方法 List.of、 Set.of、 Map.of 与 Map.ofEntries。我们将它们与包装器 Collections.unmodifiableList 对比,讨论限制(禁止修改、禁止 null、集合元素与 Map 键禁止重复)、元素顺序与性能。还会说明 Map.of 的 10 对限制以及常见异常: UnsupportedOperationException、 NullPointerException、 IllegalArgumentException。另外给出实践示例,展示这些集合如何简化设计并提升读操作的线程安全性。
    可用
  • Map.copyOf、Set.copyOf 及其他实用工具

    JAVA 25 SELF
    等级 34,课时 1
    在本讲中,我们讲解 Java 10 中引入的不可变集合副本: List.copyOf、 Set.copyOf 和 Map.copyOf。你将了解它们与 Collections.unmodifiable* 包装器的区别、适用的限制(禁止 null、不可变性)、何时会返回同一个对象,以及为何不应依赖具体实现。文中展示了实际应用场景与常见错误,包括与 Map.of 和 Map.ofEntries 的混淆。
    可用
  • CopyOnWrite 集合与不可修改包装器

    JAVA 25 SELF
    等级 34,课时 2
    在本讲中,我们讨论用于“保护”集合的两种方法:来自 Collections.unmodifiable* 的不可修改包装器,以及 List.of/ Set.of/ Map.of 工厂方法;还会介绍位于 java.util.concurrent 包中的线程安全 CopyOnWriteArrayList 和 CopyOnWriteArraySet。我们将理解包装器与真正不可变之间的区别、CopyOnWrite 结构适用的场景,以及实践中常见的错误。
    可用
  • 可变与不可变集合:区别与应用

    JAVA 25 SELF
    等级 34,课时 3
    在本讲中,我们将解析 Java 中可变与不可变集合之间的差异:何时选择 ArrayList/ HashSet,何时使用 Java 9+ 的工厂集合( List.of、 Set.of、 Map.of)以及通过 copyOf 创建的副本。我们将讨论安全性、线程安全性、调试的便利性、 Collections.unmodifiableList 包装器的坑点与实践用例,以及常见错误和规避方法。
    可用
  • 新的集合:SequencedCollection、SequencedSet、SequencedMap

    JAVA 25 SELF
    等级 34,课时 4
    在 Java 21 中新增了有序集合接口—— SequencedCollection、 SequencedSet 和 SequencedMap。它们为按元素顺序操作提供了统一契约:可以快速访问第一个/最后一个元素,并可通过 reversed() 将集合反转。本文将讲解哪些标准集合已经实现了它们、新增了哪些方法、如何在实际代码中使用,以及常见错误和使用细节。
    可用
Learn
  • 注册
  • Java 课程
  • 任务帮助
  • 定价
  • Java 语法
社区
  • 用户
  • 文章
  • 论坛
  • 聊天
  • 成功故事
  • 动态
  • 联盟计划
Company
  • 关于我们
  • 联系方式
  • 评价
  • 媒体中心
  • CodeGym for EDU
  • 常见问题
  • 支持
CodeGymCodeGym 是一个从零开始学习 Java 编程的在线课程。该课程是初学者掌握 Java 的完美方式。它包含 1200+ 个带即时验证的任务,以及必要的 Java 基础理论。为了帮助你在学习中取得成功,我们实现了一系列激励功能:测验、编码项目、关于高效学习的内容,以及 Java 开发者职业相关内容。
关注我们
界面语言
English Deutsch Español हिन्दी Français Português Polski বাংলা
简体中文
मराठी தமிழ் Italiano Bahasa Indonesia 繁體中文 Nederlands 日本語 한국어 Bulgarian Danish Hungarian Basa Jawa Malay Norwegian Romanian Swedish Telugu Thai Українська Filipino Turkish Azərbaycan Русский Vietnamese
“程序员是培养出来的,不是天生的” © 2026 CodeGym
MastercardVisa
“程序员是培养出来的,不是天生的” © 2026 CodeGym