Map<K, V> takeWhile(bool Function(V item) predicate) { return this.entries.takeWhile((MapEntry<K, V> kvp) => predicate(kvp.value)).asMap2(); }