是否可以检查两个Map是否相等或不像java equals?
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'); } }
ikfrs5lh1#
我找到了mapEquals。
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'); } }
jw5wzhpr2#
使用MapEquality().equals(Object a, Object b)。它将返回true或false。
MapEquality().equals(Object a, Object b)
true
false
import 'package:collection/equality.dart'; MapEquality().equals(map1, map2)
kx1ctssn3#
对于Flutter,如果您有一个嵌套Map,并且您需要检查它与另一个嵌套对象在键和值Map方面是否相等,请使用用途:
import 'package:collection/collection.dart'; if(DeepCollectionEquality().equals(map1, map2)) { print('Maps are equal'); } else { print('Maps are not equal'); }
ilmyapht4#
对于非Flutter Dart代码,package:quiver提供mapsEqual函数以比较Map(以及List和Set的类似函数)。
package:quiver
mapsEqual
Map
List
Set
xlpyo6sf5#
这些答案对我都不管用。我尝试了map1.toString()== map2.toString(),它成功了。
ezykj2lf6#
Map v1 = {'name': "ahmed", "age": 24}; Map v2 = {'name': "ahmed", "age": 24}; if(v1.toString() == v2.toString()) print('yes'); else{ print('no'); } }
bvhaajcl7#
我尝试不使用任何其他依赖项。您可以复制/粘贴以下代码在 dart Playground和测试它。
void main() { final map1 = {'a':1, 'b':3}; final map2 = {'a':1, 'b':3}; final map3 = {'b':3, 'a':1}; final map4 = {'b':3, 'a':1, 'c':1}; bool result = _mapEquals(map1, map2); print(result); // true result = _mapEquals(map1, map3); print(result); // true result = _mapEquals(map1, map4); print(result); // false } bool _mapEquals(Map<String, int> map1, Map<String, int> map2) { if (map1.keys.length != map2.keys.length) return false; for (String k in map1.keys) { if (!map2.containsKey(k)) return false; if (map1[k] != map2[k]) return false; } return true; }
7条答案
按热度按时间ikfrs5lh1#
我找到了
mapEquals
。jw5wzhpr2#
使用
MapEquality().equals(Object a, Object b)
。它将返回true
或false
。kx1ctssn3#
对于Flutter,如果您有一个嵌套Map,并且您需要检查它与另一个嵌套对象在键和值Map方面是否相等,请使用用途:
ilmyapht4#
对于非Flutter Dart代码,
package:quiver
提供mapsEqual
函数以比较Map
(以及List
和Set
的类似函数)。xlpyo6sf5#
这些答案对我都不管用。
我尝试了map1.toString()== map2.toString(),它成功了。
ezykj2lf6#
bvhaajcl7#
我尝试不使用任何其他依赖项。您可以复制/粘贴以下代码在 dart Playground和测试它。