replaceRange 方法
override
使用 replacements
中的元素替换元素范围。
从 start
到 end
的范围内删除对象,然后在 start
处插入 replacements
元素。
final numbers = <int>[1, 2, 3, 4, 5];
final replacements = [6, 7];
numbers.replaceRange(1, 4, replacements);
print(numbers); // [1, 6, 7, 5]
提供的范围,由 start
和 end
给出,必须是有效的。从 start
到 end
的范围如果满足 0 ≤ start
≤ end
≤ length,则为有效范围。空范围(end == start
)也是有效的。
操作 list.replaceRange(start, end, replacements)
大致等价于
final numbers = <int>[1, 2, 3, 4, 5];
numbers.removeRange(1, 4);
final replacements = [6, 7];
numbers.insertAll(1, replacements);
print(numbers); // [1, 6, 7, 5]
但可能更高效。
列表必须是可增长的。此方法在固定长度列表上不工作,即使 replacements
具有与替换范围相同数量的元素。在这种情况下,请使用 setRange 代替。
实现
void replaceRange(int start, int end, Iterable<E> iterable) {
throw new UnsupportedError("Cannot modify an immutable List.");
}