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

课时

  • 评论
  • 关于我们
开始
开始学习
立即开始学习
  • 我的进度
  • 课程
  • 任务地图
  • 课程
  • Set:HashSet 与 TreeSet,元素唯一性

    JAVA 25 SELF
    等级 26,课时 3
    在本讲中,我们讲解 Java 中的接口 Set:它与 List 的区别、如何保证元素唯一性、实现 HashSet(快速且无序)与 TreeSet(有序)的工作方式,以及在何种场景选择哪种结构。我们还将讨论关于 equals() 和 hashCode() 的关键细节、与 null 的交互、常见任务示例(去重、唯一性校验)以及常见错误。
    可用
  • Generics:为什么需要,基础语法

    JAVA 25 SELF
    等级 26,课时 4
    从“原始”集合过渡到类型安全的代码。本讲将解析:在引入泛型之前,基于 Object 的集合为什么会导致运行时错误( ClassCastException)、泛型如何在编译期解决这一问题、如何阅读和编写诸如 List<String>、 Map<String, Integer> 这样的结构,什么是“菱形操作符” <>,以及为什么需要类型擦除(type erasure)。另外还有自定义泛型类的示例与常见错误的分析。
    可用
  • Collection、List、Set、Map 接口:层次结构

    JAVA 25 SELF
    等级 27,课时 0
    拆解 Java 集合的基础:接口 Collection 及其分支 List、 Set、 Queue/ Deque,以及独立的层次 Map。你将了解为什么 Map 不继承 Collection、层次结构长什么样、各实现有何区别、哪些方法是关键、以及在何时选择什么。最后——常见错误以及如何避免它们。
    可用
  • Iterable 和 Iterator:遍历集合

    JAVA 25 SELF
    等级 27,课时 1
    在本讲中,我们讲解如何使用 Iterable 和 Iterator 接口: iterator() 方法做什么、for-each 循环在幕后如何工作、什么时候以及为何要手动使用 hasNext() 和 next()、如何通过 remove() 安全地删除元素而不触发 ConcurrentModificationException,以及如何通过 keySet()、 values() 和 entrySet() 正确遍历 Map。包含大量实用示例与常见错误,便于巩固理解。
    可用
  • Queue, Deque, Stack:队列与栈的使用

    JAVA 25 SELF
    等级 27,课时 2
    在本课中,我们讲解 Java 中的队列与栈:如何理解 FIFO 与 LIFO 原理, Queue、 Deque 与 Stack 有何区别,为什么在现代项目中更推荐使用 ArrayDeque,以及如何安全地使用 offer/ poll/ peek 与 push/ pop/ peek 等方法。我们将展示 LinkedList、 PriorityQueue 的示例,以及打印队列与 undo 栈的小应用,并分析常见错误。
    可用
  • NavigableSet/NavigableMap

    JAVA 25 SELF
    等级 27,课时 3
    在本讲中,我们将讲解 Java 的有序且可导航的集合: NavigableSet 和 NavigableMap。我们将实操演示如何通过 subSet/ headSet/ tailSet 处理范围,如何借助 lower、 floor、 ceiling、 higher 查找“最近”的元素,以及如何通过 pollFirst/ pollLast 操作边界。还会介绍 descendingSet/ descendingMap 这种反向视图、“活的” view 以及典型用例(如日程、优先级、刻度)。实现上使用 TreeSet 和 TreeMap。
    可用
  • 泛型通配符

    JAVA 25 SELF
    等级 27,课时 4
    在本讲中,我们讲解 Java 泛型的不变性、类型参数的边界( extends/ super)、通配符 ? 以及 PECS 规则(“Producer Extends, Consumer Super”)。我们将讨论如何编写使用通配符的通用方法、类型擦除(type erasure)的工作方式、在使用 instanceof 和数组时的限制,以及与集合和 Stream API 的实践。最后——常见错误及其避免方法。
    可用
  • 集合元素的过滤

    JAVA 25 SELF
    等级 28,课时 0
    本讲将讲解在 Java 中对集合进行过滤的实战:通过循环 for 的命令式方法、在迭代过程中借助 Iterator 和 remove() 方法进行安全删除,以及更现代且简洁的 removeIf(Java 8+)。我们还会讨论为什么会出现 ConcurrentModificationException、什么时候应该新建列表,以及在编写过滤条件时最常见的错误。
    可用
  • 集合转换

    JAVA 25 SELF
    等级 28,课时 1
    在本讲中我们讲解如何以命令式方式执行集合转换:如何从 List<String> 得到 List<Integer>(例如字符串长度),如何从领域模型对象( Product → 名称/价格)中提取字段,如何通过 addAll() 或嵌套循环对嵌套集合进行“扁平化”,以及如何用 if 和类似 startsWith 的方法把过滤与转换组合起来。最后,我们会讨论一些常见错误:修改源集合、错误的类型转换( ClassCastException)以及性能方面的问题。
    可用
  • 安全删除元素

    JAVA 25 SELF
    等级 28,课时 2
    在实践中,从集合中删除元素往往会导致 ConcurrentModificationException。本讲将解析为何通过 for-each 遍历时会发生这种情况,如何使用 Iterator.remove() 安全删除元素, ListIterator 有何用处,何时选择 removeIf(Java 8+),以及如何正确地处理 Map。最后——实用建议与常见错误。
    可用
  • EnumSet/EnumMap

    JAVA 25 SELF
    等级 28,课时 3
    本讲将解析面向枚举的专用集合——来自 java.util 包的 EnumSet 和 EnumMap:它们的内部工作机制(位掩码与按 ordinal 索引)、为何它们比 HashSet/ HashMap 更快且更紧凑、适用场景(标志、映射表、有限状态机)、修改 enum 与序列化相关的坑点,以及一套最佳实践与常见错误,并配有直观的代码示例。
    可用
  • LinkedHashSet/LinkedHashMap

    JAVA 25 SELF
    等级 28,课时 4
    在本讲中,我们讨论可记忆顺序的集合: LinkedHashSet 和 LinkedHashMap。你将了解它们如何维护插入顺序和访问顺序,如何仅用几行代码通过重写 removeEldestEntry 构建 LRU 缓存,与 HashSet/ HashMap 相比的内存与速度开销,什么时候需要确定性顺序以获得稳定的测试和报告,以及在队列/栈场景下为何 ArrayDeque 比 LinkedList 更合适。最后——常见错误及其避免方法。
    可用
  • 1
  • ...
  • 12
  • 13
  • 14
  • 15
  • 16
  • ...
  • 30
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