英文:
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<String, dynamic>
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, _) => 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.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论