Dart的map类似于Java的LinkedHashMap吗?

huangapple go评论60阅读模式
英文:

Is Dart's map like a java LinkedHashMap?

问题

在迭代Map<String, dynamic>时,似乎它总是按顺序打印。也就是说,它的行为类似于Java中的LinkedHashMap。该地图是从JSON解码的。

data.forEach((k, _) => print(k));

JSON中的最后一个键总是最后打印。这是否意味着可以定义地图的“last”元素?

英文:

While iterating forEach over Map&lt;String, dynamic&gt; it seems that it prints always in order. I.e. it behaves like a LinkedHashMap in java. The map was decoded from json.

data.forEach((k, _) =&gt; print(k));

The last key from json always prints last. Does it mean it's possible to define the last element of the map?

答案1

得分: 0

Dart的Map默认实现是LinkedHashMap,它会按插入顺序保留条目。这在Map的文档中有提到:

> Map()
> 创建一个空的LinkedHashMap。
>
> Map.from(Map other)
> 创建一个与other具有相同键和值的LinkedHashMap。
>
> ...
>
> Map.identity()
> 使用默认实现创建一个身份映射,LinkedHashMap。

英文:

Dart's default implementation for a Map is a LinkedHashMap, which keeps entries in insertion order. This is mentioned in the documentation for Map:

> Map()
> Creates an empty LinkedHashMap.
>
> Map.from(Map other)
> Creates a LinkedHashMap with the same keys and values as other.
>
> ...
>
> Map.identity()
> Creates an identity map with the default implementation, LinkedHashMap.

huangapple
  • 本文由 发表于 2023年5月13日 22:05:19
  • 转载请务必保留本文链接:https://go.coder-hub.com/76243140.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定