如何在飞镖中检查两个地图是否相等

时间:2020-05-13 02:49:09

标签: dart

是否可以检查两个映射是否相等,例如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');
  }
}

6 个答案:

答案 0 :(得分:2)

使用MapEquality().equals(Object a, Object b)。它将返回truefalse

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(以及ListSet的相似函数)

答案 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');
    }
  }