HashMap<K, V>.from constructor

HashMap<K, V>.from(
  1. Map<K, V> map
)

Creates a hash map from an existing map.

This is a factory constructor that creates a new hash map from an existing map. A custom implementation of a hash map that implements the Map<K, V> interface.

This map uses open addressing with chaining to resolve hash collisions. Each bucket holds a list of _HashMapEntry<K, V> objects, allowing multiple entries to exist in the same bucket if they hash to the same index.

It supports automatic resizing when the load factor exceeds 0.75, ensuring performance remains optimal as the number of entries grows.

This is useful for educational purposes or when custom behavior is required beyond what dart:collection offers.


⚙️ Internal Design:

  • Backed by an array of lists: List<List<_HashMapEntry<K, V>>?> _buckets
  • On collision: new entries are appended to the appropriate list
  • Resize logic doubles capacity when load factor exceeds the threshold

📦 Example Usage:

final map = HashMap<String, int>();
map['apple'] = 3;
map['banana'] = 5;
print(map['apple']); // 3
print(map.containsKey('banana')); // true
print(map.length); // 2

Implementation

factory HashMap.from(Map<K, V> map) {
  final result = HashMap<K, V>();
  map.forEach((key, value) {
    result[key] = value;
  });
  return result;
}