keys property Null safety

Iterable<K> keys
override

The keys of this.

The returned iterable has efficient contains operations, assuming the iterables returned by the wrapped maps have efficient contains operations for their keys iterables.

The length must do deduplication and thus is not optimized.

The order of iteration is defined by the individual Map implementations, but must be consistent between changes to the maps.

Unlike most Map implementations, modifying an individual map while iterating the keys will sometimes throw. This behavior may change in the future.

Implementation

@override
Iterable<K> get keys => _DeduplicatingIterableView(
    CombinedIterableView(_maps.map((m) => m.keys)));