# operator [] method

1. @override

V? operator [](

1. Object? key

)
override

The value for the given `key`, or `null` if `key` is not in the map.

Some maps allow `null` as a value. For those maps, a lookup using this operator cannot distinguish between a key not being in the map, and the key being there with a `null` value. Methods like containsKey or putIfAbsent can be used if the distinction is important.

## Implementation

    @override
    V? operator [](Object? key) {
      if (isEmpty) return null;

      final index = _getBucketIndex(key);
      final bucket = _buckets[index];

      if (bucket != null) {
        for (final entry in bucket) {
          if (entry.key == key) {
            return entry.value;
          }
        }
      }
      return null;
    }