DualLazyWeakMap<K extends Object, V extends Object> class
A lazily-managed variant of DualWeakMap.
Keys and values are held using LazyWeakReference, meaning entries start strongly referenced and automatically degrade to weak references over time (see LazyWeakReferenceManager).
This reduces allocation and GC overhead for recently accessed entries while still allowing unused ones to be garbage-collected.
See also: LazyWeakReference, LazyWeakReferenceManager.
- Inheritance
-
- Object
- MapBase<
K, V> - WeakKeyMap<
K, V> - DualWeakMap<
K, V> - DualLazyWeakMap
Constructors
-
DualLazyWeakMap(LazyWeakReferenceManager<
K> keyLazyRefManager, LazyWeakReferenceManager<V> valueLazyRefManager, {bool autoPurge = true, int autoPurgeThreshold = defaultAutoPurgeThreshold, OnPurgedValues<V> ? onPurgedValues})
Properties
- autoPurgeThreshold → int
-
Number of operations tolerated before auto-purge is triggered.
no setterinherited
-
entries
→ Iterable<
MapEntry< K, V> > -
The map entries of this Map.
no setterinherited
-
entriesSwapped
→ Iterable<
MapEntry< V, K> > -
Iterable of entries with key and value swapped.
See DualWeakMap.swapped SwappedDualWeakMap
no setterinherited
- hashCode → int
-
The hash code for this object.
no setterinherited
- isAutoPurgeEnabled → bool
-
Whether auto-purge is enabled.
no setterinherited
- isEmpty → bool
-
Whether there is no key/value pair in the map.
no setterinherited
- isNotEmpty → bool
-
Whether there is at least one key/value pair in the map.
no setterinherited
-
keys
→ Iterable<
K> -
The keys of this Map.
no setterinherited
- length → int
-
The number of key/value pairs in the map.
no setterinherited
-
onPurgedValues
→ OnPurgedValues<
V> ? -
Optional callback invoked with values removed during purge.
finalinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
-
swapped
→ SwappedDualWeakMap<
V, K> -
Returns a view with keys and values swapped.
no setterinherited
-
values
→ Iterable<
V> -
The values of this Map.
no setterinherited
Methods
-
addAll(
Map< K, V> other) → void -
Adds all key/value pairs of
otherto this map.inherited -
addEntries(
Iterable< MapEntry< newEntries) → voidK, V> > -
Adds all key/value pairs of
newEntriesto this map.inherited -
autoPurge(
) → bool -
Runs purge automatically if the threshold is exceeded.
inherited
-
cast<
RK, RV> () → Map< RK, RV> -
Provides a view of this map as having
RKkeys andRVinstances, if necessary.inherited -
clear(
) → void -
Removes all entries from the map.
inherited
-
containsKey(
Object? key) → bool -
Whether this map contains the given
key.inherited -
containsKeyNoPurge(
Object? key) → bool -
Returns
trueifkeyhas an associated value.inherited -
containsValue(
Object? value) → bool -
Whether this map contains the given
value.inherited -
containsValueNoPurge(
Object? value) → bool -
Returns
trueif any entry currently maps tovalue.inherited -
forEach(
void action(K key, V value)) → void -
Applies
actionto each key/value pair of the map.inherited -
get(
Object? key) → V? -
Returns the value associated with
key, ornullif absent or collected.inherited -
getEntry(
Object? key) → MapEntry< K, V> ? -
Returns the MapEntry for
key, ornullif not found or invalid.inherited -
getKeyFromValue(
Object? value) → K? -
Returns the key associated with a given value, if still alive.
inherited
-
getNoPurge(
Object? key) → V? -
Returns the value associated with
key, ornullif absent or collected. Same as get, but does NOT purge entries with collected key or value.inherited -
isAutoPurgeRequired(
) → bool -
Returns
trueif auto-purge should be triggered.inherited -
iterate(
void action(K, V)) → void -
Iterates over live entries only.
inherited
-
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
convertfunction.inherited -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
purge(
) → WeakKeyMap< K, V> -
Removes all entries whose keys were garbage-collected.
inherited
-
put(
K key, V value) → void -
Inserts or replaces a key-value pair.
inherited
-
putIfAbsent(
K key, V ifAbsent()) → V -
Look up the value of
key, or add a new entry if it isn't there.inherited -
putValueIfAbsent(
K key, V value) → bool -
Inserts
valueforkeyonly if no entry forkeyalready exists.inherited -
remove(
Object? key) → V? -
Removes
keyand its associated value, if present, from the map.inherited -
removeWhere(
bool test(K key, V value)) → void -
Removes all entries of this map that satisfy the given
test.inherited -
removeWhereKey(
bool test(K key)) → void -
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, ornullifkeyis not in the map.inherited -
operator []=(
K key, V value) → void -
Associates the
keywith the givenvalue.inherited