我正在尝试比较2个列表。 (飞镖(颤振))
List a = [1,2,3,4]
List b = [2,3]
我想找到列表b中没有的列表a元素。 结果:
List c = [1,4]
我应该使用哪种方法?从学校的数学中,我知道您可以使用交集找到公用元素,但是不知道此“方法”的名称。
谢谢!
答案 0 :(得分:2)
如果您使用集合而不是列表,这会容易得多:Set.difference方法完全可以做到这一点。
或者,如果希望输出为列表(以维持列表a
的顺序),最有效的方法仍然是将列表b
中的元素存储在一组中,然后使用Set.contains方法,在列表a
上循环,以根据列表c
中未包含的元素建立列表b
。
答案 1 :(得分:1)
使用静态扩展方法的解决方案。
import 'package:enumerable/enumerable.dart';
void main(List<String> args) {
final a = [1, 2, 3, 4];
final b = [2, 3];
final q = a.except(b);
print(q.toList());
}
结果:
[1, 4]