每次我需要迭代MapDart中 a 的值时,我都会考虑这个循环将产生的成本,就复杂性和产生的垃圾量而言。有两种方法可以迭代 a 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?
Run Code Online (Sandbox Code Playgroud)
如果Map在内部将其值存储为MapEntry对象,则可能entries与values. 的实现细节Map深埋在 Dart 库中,所以我想知道是否有人有这方面的知识并且可以阐明这个主题。
我知道这可以Map.entries让您访问密钥,但我说的是不需要使用条目密钥的情况。我也明白Map …
dart ×1