是否可以检查两个映射是否相等,例如java equals
?
void main() {
Map map1 = {'size': 38, 'color': 'red'};
Map map2 = {'size': 38, 'color': 'red'};
if(map1== map2){//both keys and values
print('yes');
}else{
print('no');
}
}
答案 0 :(得分:2)
使用MapEquality().equals(Object a, Object b)
。它将返回true
或false
。
import 'package:collection/equality.dart';
MapEquality().equals(map1, map2)
答案 1 :(得分:2)
对于 Flutter,如果您有一个嵌套的 Map 并且您需要在键和值映射方面检查它与另一个嵌套对象的相等性,请使用:
import 'package:collection/collection.dart';
if(DeepCollectionEquality().equals(map1, map2)) {
print('Maps are equal');
} else {
print('Maps are not equal');
}
答案 2 :(得分:1)
我找到了mapEquals
。
import 'package:flutter/foundation.dart';
void main() {
Map map1 = {'size': 38, 'color': 'red'};
Map map2 = {'size': 38, 'color': 'red'};
if(mapEquals(map1, map2)){
print('yes');
}else{
print('no');
}
}
答案 3 :(得分:1)
对于非Flutter Dart代码,package:quiver
提供了一个mapsEqual
函数来比较Map
(以及List
和Set
的相似函数)
答案 4 :(得分:0)
这些答案中的任何一个都不适合我。
我尝试了map1.toString()== map2.toString()并有效。
答案 5 :(得分:0)
Map v1 = {'name': "ahmed", "age": 24};
Map v2 = {'name': "ahmed", "age": 24};
if(v1.toString() == v2.toString())
print('yes');
}else{
print('no');
}
}