K, V> constructor
Creates an insertion-ordered hash-table based Map.
equals is provided, it is used to compare the keys in the table with
new keys. If
equals is omitted, the key's own Object.== is used
hashCode is provided, it is used to produce a hash value
for keys in order to place them in the hash table. If it is omitted, the
key's own Object.hashCode is used.
hashCode method should always be consistent,
so that if
equals(a, b) then
hashCode(a) == hashCode(b). The hash
of an object, or what it compares equal to, should not change while the
object is in the table. If it does change, the result is unpredictable.
If you supply one of
you should generally also supply the other.
hashCode functions might not work for all objects.
isValidKey is supplied, it's used to check a potential key
which is not necessarily an instance of
K, like the arguments to
operator , remove and containsKey, which are typed as
false, for an object, the
hashCode functions are not called, and no key equal to that object
is assumed to be in the map.
isValidKey function defaults to just testing if the object is an
LikedHashMap<int,int>(equals: (int a, int b) => (b - a) % 5 == 0, hashCode: (int e) => e % 5)
This example map does not need an
isValidKey function to be passed.
The default function accepts precisely
int values, which can safely be
passed to both the
isValidKey is provided,
isValidKey instead accepts all keys.
The default equality and hashcode operations are assumed to work on all
equals is identical,
hashCode is identityHashCode
isValidKey is omitted, the resulting map is identity based,
isValidKey defaults to accepting all keys.
Such a map can be created directly using LinkedHashMap.identity.
external factory LinkedHashMap