Java 的 List 使用 subList() 获取子集合,关于子集合,以下哪一项说法是错误的? A. 返回的子集合没有实现 Serializable 接口,不能被序列化,所以不能应用于 RPC 场景 B. 在子集合中添加某个元素,那么结果集合也会添加进去此元素 C. 结果集合中元素的修改不会影响到子集合的任何操作 D. 对结果集合元素个数的修改,会导致子集合的遍历产生 ConcurrentModificationException 异常
时间: 2024-03-15 18:42:44 浏览: 131
java 集合并发操作出现的异常ConcurrentModificationException
5星 · 资源好评率100%
选项 B 是错误的。
A. 返回的子集合没有实现 Serializable 接口,不能被序列化,所以不能应用于 RPC 场景。这是正确的。
B. 在子集合中添加某个元素,那么结果集合也会添加进去此元素。这是错误的。子集合是原集合的一个视图,它们共享相同的底层数据结构,因此对子集合的任何修改都会反映在原集合中,但是对原集合的修改不会反映在子集合中。因此,如果在子集合中添加元素,那么结果集合不会添加此元素。
C. 结果集合中元素的修改不会影响到子集合的任何操作。这是正确的,因为子集合是原集合的一个视图,它们共享相同的底层数据结构,但是两者的引用是不同的。
D. 对结果集合元素个数的修改,会导致子集合的遍历产生 ConcurrentModificationException 异常。这是正确的,因为对结果集合的修改可能会改变其结构,从而导致迭代器抛出 ConcurrentModificationException 异常。
阅读全文