☰ 总览更新 10-13 10:24

16 · 遍历时修改集合

我的原话

看 vs 改

只是看(队伍不变) 会改(队伍变了)
size() get(0) contains() add() remove()

一边点名一边踢人 → 报错(真跑过 T31.java)

for (String n : names) {
    if (n.equals("张三")) names.remove(n);
}
看到 张三
Exception in thread "main" java.util.ConcurrentModificationException

ConcurrentModification = 点名的同时被改了。踢掉一人后面全往前挪(13-ArrayList和HashMap),点名的人发现队伍变了就报错。 正确:点完名再踢,remove 放到 for 外面。

题

size() / get(0) / add / contains 哪些放循环里不报错?→「除了 add 其余都不会」✅