FlatHashMap<K extends Object, V extends Object> class

A compact hash map optimized for low allocation and cache-friendly access.

Uses flat arrays plus per-bucket chained indices instead of object nodes. Collisions are handled via singly-linked chains stored in index arrays.

Design highlights:

  • Integer indices instead of object references
  • Reusable removed slots (free-list)
  • Adaptive integer width for chain pointers (8/16/32/64 bits)
  • Rehashing based on load per bucket

Index 0 is reserved as a null/end sentinel.

Inheritance

Constructors

FlatHashMap()

Properties

capacity int
Current chain storage capacity.
no setter
capacityBits int
Bit-width used by the chain pointer storage. Useful to inspect internal memory optimization.
no setter
entries Iterable<MapEntry<K, V>>
Iterates entries in insertion order minus removed entries.
no setteroverride
hashCode int
The hash code for this object.
no setterinherited
isEmpty bool
Whether there is no key/value pair in the map.
no setteroverride
isNotEmpty bool
Whether there is at least one key/value pair in the map.
no setterinherited
keys Iterable<K>
Iterates keys in insertion order minus removed entries.
no setteroverride
length int
The number of key/value pairs in the map.
no setteroverride
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
values Iterable<V>
Iterates values in insertion order minus removed entries.
no setteroverride

Methods

addAll(Map<K, V> other) → void
Adds all key/value pairs of other to this map.
inherited
addEntries(Iterable<MapEntry<K, V>> newEntries) → void
Adds all key/value pairs of newEntries to this map.
inherited
cast<RK, RV>() Map<RK, RV>
Provides a view of this map as having RK keys and RV instances, if necessary.
inherited
clear({bool full = false}) → void
Clears the map.
override
containsKey(Object? key) bool
Whether this map contains the given key.
override
containsValue(Object? value) bool
Whether this map contains the given value.
override
forEach(void action(K key, V value)) → void
Applies action to each key/value pair of the map.
inherited
get(Object? key) → V?
Returns the value associated with key, or null if not present.
map<K2, V2>(MapEntry<K2, V2> transform(K key, V value)) Map<K2, V2>
Returns a new map where all entries of this map are transformed by the given convert function.
inherited
memory({int objectReferenceBytes = 8}) int
Estimates internal memory usage in bytes.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
put(K key, V value) → V?
Inserts or replaces a key-value pair. Returns the previous value if the key already existed.
putIfAbsent(K key, V ifAbsent()) → V
Look up the value of key, or add a new entry if it isn't there.
inherited
remove(Object? key) → V?
Removes key and its associated value, if present, from the map.
override
removeWhere(bool test(K key, V value)) → void
Removes all entries of this map that satisfy the given test.
inherited
toString() String
A string representation of this object.
inherited
update(K key, V update(V value), {V ifAbsent()?}) → V
Updates the value for the provided key.
inherited
updateAll(V update(K key, V value)) → void
Updates all values.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited
operator [](Object? key) → V?
The value for the given key, or null if key is not in the map.
override
operator []=(K key, V value) → void
Associates the key with the given value.
override