List<double> first = [1,2,3,4,5,6,7];
List<double> second = [3,5,6,7,9,10];
List<double> output = [];
first.forEach((element) {
if(!second.contains(element)){
output.add(element);
}
});
//at this point, output list should have the answer
备选答案:
List<double> first = [1,2,3,4,5,6,7];
List<double> second = [3,5,6,7,9,10];
List<double> output = first.where((element) => !second.contains(element));
8条答案
按热度按时间xv8emn3q1#
由于您将查找唯一元素,因此可以使用Set类(https://api.flutter.dev/flutter/dart-core/Set/difference.html)的difference方法来执行以下操作:
rmbxnbpk2#
你可以这样做:
备选答案:
注意,对于这两种情况,你都需要遍历更大的列表。
jpfvwuh43#
简单且推荐的方法是
1dkrff034#
如果你需要单行线,就像这样做
结果是
mftmpeh85#
这似乎很管用:
bmp9r5qi6#
可为空的变量使用
!.contains
。zzlelutf7#
ctrmrzij8#
因为
list.contains()
是一个O(n)
操作,所以其他答案的性能很差,并且不考虑列表中的重复元素。Myers diff algorithm可以帮助您比较两个列表。
下面是@knaeckeKami的dart实现。
https://github.com/knaeckeKami/diffutil.dart