insert method

  1. @override
void insert(
  1. int index,
  2. int element
)
inherited

Inserts element at position index in this list.

This increases the length of the list by one and shifts all objects at or after the index towards the end of the list.

The list must be growable. The index value must be non-negative and no greater than length.

final numbers = <int>[1, 2, 3, 4];
const index = 2;
numbers.insert(index, 10);
print(numbers); // [1, 2, 10, 3, 4]

Implementation

@override
void insert(int index, E element) {
  if (index < 0 || index > _length) {
    throw RangeError.range(index, 0, _length);
  }
  if (_length < _buffer.length) {
    _buffer.setRange(index + 1, _length + 1, _buffer, index);
    _buffer[index] = element;
    _length++;
    return;
  }
  var newBuffer = _createBiggerBuffer(null);
  newBuffer.setRange(0, index, _buffer);
  newBuffer.setRange(index + 1, _length + 1, _buffer, index);
  newBuffer[index] = element;
  _length++;
  _buffer = newBuffer;
}