列表包含一个可增长的数据集合。有时你想找到这两个列表之间的差异。
例如,你有两个声明的列表
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教程中学习了如何获得多个列表的不同元素。