BiMap<K, V>.fromIterables constructor

BiMap<K, V>.fromIterables(
  1. Iterable<K> keys,
  2. Iterable<V> values
)

Creates a bi-map from two equal length iterables.

Implementation

factory BiMap.fromIterables(Iterable<K> keys, Iterable<V> values) {
  final result = BiMap<K, V>();
  final keyIterator = keys.iterator;
  final valueIterator = values.iterator;
  var moreKeys = keyIterator.moveNext();
  var moreValues = valueIterator.moveNext();
  while (moreKeys && moreValues) {
    result[keyIterator.current] = valueIterator.current;
    moreKeys = keyIterator.moveNext();
    moreValues = valueIterator.moveNext();
  }
  if (moreKeys || moreValues) {
    throw ArgumentError('Iterables do not have same length');
  }
  return result;
}