17370845950

如何在Java中使用Collections.fill填充元素
Collections.fill方法用于将指定元素填充到已初始化的列表中,替换所有现有元素。需确保列表具有实际容量,如通过Collections.nCopies创建固定大小列表后使用fill进行统一赋值。

在Java中,Collections.fill 方法用于将指定的元素填充到列表中的所有位置。这个方法不会创建新列表,而是替换已有列表中的元素值。使用前需确保列表已经初始化并具有一定的大小。

方法签名

public static void fill(List super T> list, T obj)

该方法接受两个参数:要操作的列表和用于填充的元素。它会把列表中的每一个元素都替换为传入的对象引用。

基本使用步骤

要正确使用 Collections.fill,需要先创建一个有实际容量的列表。常见方式是使用 Arrays.asList 或先添加足够数量的元素。

  • 创建一个包含固定数量元素的列表,例如用 Collections.nCopies 初始化
  • 或将已有列表传入 fill 方法
  • 调用 Collections.fill(list, value) 填充新值

代码示例

下面是一个简单例子:

List list = new ArrayList(Collections.nCopies(5, "default")); System.out.println(list); // 输出: [default, default, default, default, default]

Collections.fill(list, "Java"); System.out.println(list); // 输出: [Java, Java, Java, Java, Java]

这里先用 Collections.nCopies 创建了包含5个 "default" 的列表,然后通过 fill 将所有元素替换为 "Java"。

注意事项

不能对 null 列表或未初始化元素的空列表使用 fill。比如直接 new ArrayList() 后调用 fill 不会改变任何内容,因为列表长度为0。

  • 确保列表不为空且已有元素
  • fill 操作的是对象引用,多个位置指向同一对象时需注意可变性
  • 适用于 String、Integer 等不可变类型更安全
基本上就这些。只要列表有实际元素,Collections.fill 就能快速统一赋值。