# lastIndexOf method

1. @override

int lastIndexOf(

1. Object? element, [
2. int? start

])
override

The last index of `element` in this list.

Searches the list backwards from index `start` to 0.

The first time an object `o` is encountered so that `o == element`, the index of `o` is returned.

    final notes = <String>['do', 're', 'mi', 're'];
    const startIndex = 2;
    final index = notes.lastIndexOf('re', startIndex); // 1

If `start` is not provided, this method searches from the end of the list.

    final notes = <String>['do', 're', 'mi', 're'];
    final index = notes.lastIndexOf('re'); // 3

Returns -1 if `element` is not found.

    final notes = <String>['do', 're', 'mi', 're'];
    final index = notes.lastIndexOf('fa'); // -1

## Implementation

    @override
    int lastIndexOf(Object? element, [int? start]) {
      if (isEmpty) return -1;
      start ??= _length - 1;
      if (start < 0 || start >= _length) {
        return -1;
      }

      _Node<E>? current = _getNodeAt(start);
      for (int i = start; i >= 0; i--) {
        if (current!.value == element) {
          return i;
        }
        current = current.prev;
      }
      return -1;
    }