Collections.copy用于将源列表元素复制到目标列表,需确保目标列表长度不小于源列表且可修改。示例中先创建等长目标列表并填充,默认值后执行复制,最终输出[apple, banana, cherry]。常见错误是目标列表长度不足,抛出IndexOutOfBoundsException;更安全的替代方式是使用new ArrayList(source)直接构造副本。该方法适用于需复用列表对象的性能敏感场景。
在Java中,Collections.copy 方法用于将一个列表(List)中的所有元素复制到另一个已有列表中,覆盖目标列表中对应位置的元素。这个方法不会创建新列表,而是将源列表的内容“复制”到目标列表的指定位置上。使用时有一些重要限制和步骤需要注意。
调用 Collections.copy 前必须满足以下条件,否则会抛出异常:
如果目标列表长度不足,会抛出 IndexOutOfBoundsException。
由于目标列表必须有足够的容量,通常的做法是先用源列表初始化目标列表的大小,再进行复制。
示例代码:
List直接使用 new ArrayList(source) 更简单安全,适用于大多数复制场景:
List这种方式无需担心大小问题,且更直观。而 Collections.copy 更适合需要复用已有列表对象的场景,比如性能敏感或对象池环境。
基本上就这些。注意大小匹配和可修改性,就能正确使用 Collec
tions.copy。