Collections.nCopies用于创建包含n个相同元素引用的不可变列表,所有元素共享同一实例,适用于初始化默认值;若需可变集合,应通过ArrayList等构造函数复制结果,并注意避免可变对象的副作用。
在Java中,Collections.nCopies 是一个便捷的工具方法,用于快速生成包含重复元素的不可变集合。它常用于初始化具有相同值的多个元素,避免手动循环添加。
Collections.nCopies(int n, T o) 接收两个参数:
返回一个由n个指定对象引用组成的不可变List。注意,所有元素都指向同一个对象实例,因此修改该对象会影响所有“副本”(仅适用于可变对象)。
示例代码:
List
es(5, "Hello");
System.out.println(strings); // 输出:[Hello, Hello, Hello, Hello, Hello]
由于 nCopies 返回的是不可变列表,不能直接添加或删除元素。如需可变集合,应将其作为构造函数参数传入 ArrayList 或 LinkedList:
List
numbers.set(1, 100); // 现在可以修改
这样就得到了一个长度为4、初始值均为0的可变列表。
使用 nCopies 时需注意以下几点:
基本上就这些。合理使用 Collections.nCopies 能让代码更简洁,但要注意其不可变性和引用共享特性。