intersection<T> function

List<T> intersection<T>(
  1. Iterable<Iterable<T>> list
)

返回所有数据中都有的数据(交集)

Implementation

List<T> intersection<T>(Iterable<Iterable<T>> list) {
  List<T> rl = [];
  Set<T> tmpSet = {};
  List<Set<T>> tmpList = [];
  for (var e in list) {
    tmpList.add(Set.from(e));
  }
  for (var l in list) {
    for (var lv in l) {
      if (tmpSet.contains(lv)) {
        continue;
      }
      bool has = true;
      for (var ls in tmpList) {
        if (!ls.contains(lv)) {
          has = false;
          break;
        }
      }
      if (has) {
        rl.add(lv);
        tmpSet.add(lv);
      }
    }
  }
  return rl;
}