AI Academy
促销
CodeGym University
学习
课程
任务
调查 & 测验
游戏
帮助
日程
社区
Users
论坛
聊天
文章
成功故事
动态
评价
订阅
浅色主题
课时
评论
关于我们
开始
开始学习
立即开始学习
我的进度
课程
任务地图
课程
Java 25
Java 25
级别 28
集合元素的过滤
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
更合适。最后——常见错误及其避免方法。
Please enable JavaScript to continue using this application.