Dart| Flutter:检查两个列表差异的不同方法与实例

950 阅读2分钟

列表包含一个可增长的数据集合。有时你想找到这两个列表之间的差异。

例如,你有两个声明的列表

  List list1 = [1,5,10,20,25,30,35];
  List list2 = [1,5,7,25,29,30];

上述列表之间的差异是什么? 差异是指两个列表中重复出现的共同元素被称为列表的差异。

这个例子向您展示了寻找两个列表之间差异的多种方法。

Flutter/Dart查找列表的差异

我们有多种方法可以得到多个列表之间的差异。

  • 使用 list removeWhere 方法

    列表removewhere方法删除了一个通过函数条件的元素

  void removeWhere(bool Function(dynamic) condition)

在这个例子中,从第一个列表中,删除了元素,这些元素不在第二个列表中。

如果有多个列表,你可以继续应用同样的逻辑。这将使原来的第一个列表和第一个列表中的结果发生变化。

寻找列表中共同元素的代码示例:

void main() {
  List list1 = [1, 5, 10, 20, 25, 30, 35];
  List list2 = [1, 5, 7, 25, 29, 30];
  list1.removeWhere((item) => !list2.contains(item));

  print(list1); //[1, 5, 25, 30]
}

转换为 Set 和条件传递的地方

在这个例子中,第一个列表被转换为一个集合,以去除列表中的重复元素。接下来,调用Where 条件,返回带有条件逻辑的列表的Iterable。条件逻辑是检查第二个集合中的每个元素是否存在,其中第二个列表被转换。 最后,使用toList()方法将集合转换成列表。

下面是两个列表的区别示例

void main() {
  List list1 = [1, 5, 10, 20, 25, 30, 35];
  List list2 = [1, 5, 7, 25, 29, 30];
  List uniqueItemsList =
      list1.toSet().where((item) => list2.toSet().contains(item)).toList();

  print(uniqueItemsList); //[1, 5, 25, 30]
}

结语

综上所述,在dart和flutter教程中学习了如何获得多个列表的不同元素。