gpt4 book ai didi

Dart:我应该更喜欢迭代 Map.entries 还是 Map.values?

转载 作者:行者123 更新时间:2023-12-04 15:06:13 28 4
gpt4 key购买 nike

每次我需要遍历 Map 的值时在 Dart 中,我考虑了这个循环将产生的成本,就复杂性和产生的垃圾数量而言。有两种方法可以迭代 Map 的值:Map.values , 和 Map.entries .例如:

Map<String, Person> people;

int olderThan(int age) {
int result = 0;
for(Person p in people.values)
if(p.age > age) result++;
return result;
}

int olderThan2(int age) {
int result = 0;
for(MapEntry<String, Person> me in people.entries)
if(me.value.age > age) result++;
return result;
}

// Which one is faster: olderThan or olderThan2?


Map在内部将其值存储为 MapEntry对象,可能是 entries将与 values 一样有效甚至更有效. Map的实现细则深埋在 Dart 库中,所以我想知道是否有人有这方面的知识并且可以阐明这个主题。

我明白 Map.entries使您可以访问 key ,但我说的是不需要使用条目 key 的情况。我也明白 Map 有不同的实现.我最感兴趣的是默认实现, LinkedHashMap ,但如果知道不同 Map 之间是否存在差异会很好这方面的实现。

最佳答案

如果您遍历条目 MapEntry为每个键值组合创建实例。

如果您只需要值,则迭代 map.values效率更高。

关于Dart:我应该更喜欢迭代 Map.entries 还是 Map.values?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54715554/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com