Movatterモバイル変換


[0]ホーム

URL:


menu
  1. Dart
  2. dart:collection
  3. LinkedHashMap<K,V> class
LinkedHashMap
description

LinkedHashMap<K,V> classabstractfinal

An insertion-orderedMap with expected constant-time lookup.

A non-constant map literal, like{"a": 42, "b": 7}, is aLinkedHashMap.

Thekeys,values andentries are iterated in key insertion order.

The map uses a hash-table to look up entries, so keys must havesuitable implementations ofObject.operator== andObject.hashCode.If the hash codes are not well-distributed, the performance of mapoperations may suffer.

The insertion order of keys is remembered,and keys are iterated in the order they were inserted into the map.Values and entries are iterated in their corresponding key's order.Changing a key's value, when the key is already in the map,does not change the iteration order,but removing the key and adding it againwill make it be last in the iteration order.

Notice:Do not modify a map (add or remove keys) while an operationis being performed on that map, for example in functionscalled during aforEach orputIfAbsent call,or while iterating the map (keys,values orentries).

The keys of aLinkedHashMap must have consistentObject.==andObject.hashCode implementations. This means that the== operatormust define a stable equivalence relation on the keys (reflexive,symmetric, transitive, and consistent over time), and thathashCodemust be the same for objects that are considered equal by==.

Example:

final planetsByDiameter = {0.949: 'Venus'}; // A new LinkedHashMap

To add data to a map, useoperator[]=,addAll oraddEntries.

planetsByDiameter[1] = 'Earth';planetsByDiameter.addAll({0.532: 'Mars', 11.209: 'Jupiter'});

To check if the map is empty, useisEmpty orisNotEmpty.To find the number of map entries, uselength.

print(planetsByDiameter.isEmpty); // falseprint(planetsByDiameter.length); // 4print(planetsByDiameter);// {0.949: Venus, 1.0: Earth, 0.532: Mars, 11.209: Jupiter}

TheforEach method calls a function for each key/value entry of the map.

planetsByDiameter.forEach((key, value) {  print('$key \t $value');  // 0.949    Venus  // 1.0      Earth  // 0.532    Mars  // 11.209   Jupiter});

To check whether the map has an entry with a specific key, usecontainsKey.

final keyOneExists = planetsByDiameter.containsKey(1); // truefinal keyFiveExists = planetsByDiameter.containsKey(5); // false

To check whether the map has an entry with a specific value,usecontainsValue.

final earthExists = planetsByDiameter.containsValue('Earth'); // truefinal saturnExists =  planetsByDiameter.containsValue('Saturn'); // false

To remove an entry with a specific key, useremove.

final removedValue = planetsByDiameter.remove(1);print(removedValue); // Earthprint(planetsByDiameter); // {0.949: Venus, 0.532: Mars, 11.209: Jupiter}

To remove multiple entries at the same time, based on their keys and values,useremoveWhere.

planetsByDiameter.removeWhere((key, value) => key == 0.949);print(planetsByDiameter); // {0.532: Mars, 11.209: Jupiter}

To conditionally add or modify a value for a specific key, depending onwhether there already is an entry with that key,useputIfAbsent orupdate.

planetsByDiameter.update(0.949, (v) => 'Venus', ifAbsent: () => 'Venus');planetsByDiameter.putIfAbsent(0.532, () => "Another Mars if needed");print(planetsByDiameter); // {0.532: Mars, 11.209: Jupiter, 0.949: Venus}

To update the values of all keys, based on the existing key and value,useupdateAll.

planetsByDiameter.updateAll((key, value) => 'X');print(planetsByDiameter); // {0.532: X, 11.209: X, 0.949: X}

To remove all entries and empty the map, useclear.

planetsByDiameter.clear();print(planetsByDiameter); // {}print(planetsByDiameter.isEmpty); // true

See also:

  • Map, the general interface of key/value pair collections.
  • HashMap is unordered (the order of iteration is not guaranteed).
  • SplayTreeMap iterates the keys in sorted order.
Implemented types

Constructors

LinkedHashMap({boolequals(K,K)?,inthashCode(K)?,boolisValidKey(dynamic)?})
Creates an insertion-ordered hash-table basedMap.
factory
LinkedHashMap.from(Mapother)
Creates aLinkedHashMap that contains all key value pairs ofother.
factory
LinkedHashMap.fromEntries(Iterable<MapEntry<K,V>>entries)
Creates aLinkedHashMap containing the entries ofentries.
factory
LinkedHashMap.fromIterable(Iterableiterable, {Kkey(dynamicelement)?,Vvalue(dynamicelement)?})
Creates aLinkedHashMap where the keys and values are computed from theiterable.
factory
LinkedHashMap.fromIterables(Iterable<K>keys,Iterable<V>values)
Creates aLinkedHashMap associating the givenkeys tovalues.
factory
LinkedHashMap.identity()
Creates an insertion-ordered identity-based map.
factory
LinkedHashMap.of(Map<K,V>other)
Creates aLinkedHashMap that contains all key value pairs ofother.Example:
factory

Properties

entriesIterable<MapEntry<K,V>>
The map entries of thisMap.
no setterinherited
hashCodeint
The hash code for this object.
no setterinherited
isEmptybool
Whether there is no key/value pair in the map.
no setterinherited
isNotEmptybool
Whether there is at least one key/value pair in the map.
no setterinherited
keysIterable<K>
The keys of thisMap.
no setterinherited
lengthint
The number of key/value pairs in the map.
no setterinherited
runtimeTypeType
A representation of the runtime type of the object.
no setterinherited
valuesIterable<V>
The values of thisMap.
no setterinherited

Methods

addAll(Map<K,V>other)→ void
Adds all key/value pairs ofother to this map.
inherited
addEntries(Iterable<MapEntry<K,V>>newEntries)→ void
Adds all key/value pairs ofnewEntries to this map.
inherited
cast<RK,RV>()Map<RK,RV>
Provides a view of this map as havingRK keys andRV instances,if necessary.
inherited
clear()→ void
Removes all entries from the map.
inherited
containsKey(Object?key)bool
Whether this map contains the givenkey.
inherited
containsValue(Object?value)bool
Whether this map contains the givenvalue.
inherited
forEach(voidaction(Kkey,Vvalue))→ void
Appliesaction to each key/value pair of the map.
inherited
map<K2,V2>(MapEntry<K2,V2>convert(Kkey,Vvalue))Map<K2,V2>
Returns a new map where all entries of this map are transformed bythe givenconvert function.
inherited
noSuchMethod(Invocationinvocation)→ dynamic
Invoked when a nonexistent method or property is accessed.
inherited
putIfAbsent(Kkey,VifAbsent())→ V
Look up the value ofkey, or add a new entry if it isn't there.
inherited
remove(Object?key)→ V?
Removeskey and its associated value, if present, from the map.
inherited
removeWhere(booltest(Kkey,Vvalue))→ void
Removes all entries of this map that satisfy the giventest.
inherited
toString()String
A string representation of this object.
inherited
update(Kkey,Vupdate(Vvalue), {VifAbsent()?})→ V
Updates the value for the providedkey.
inherited
updateAll(Vupdate(Kkey,Vvalue))→ void
Updates all values.
inherited

Operators

operator ==(Objectother)bool
The equality operator.
inherited
operator [](Object?key)→ V?
The value for the givenkey, ornull ifkey is not in the map.
inherited
operator []=(Kkey,Vvalue)→ void
Associates thekey with the givenvalue.
inherited
  1. Dart
  2. dart:collection
  3. LinkedHashMap<K,V> class
dart:collection library

[8]ページ先頭

©2009-2025 Movatter.jp