static L listSetIntersection(Iterable a, Collection b) { new L l; Set bSet = asSet(b); for (A x : unnull(a)) if (bSet.contains(x)) l.add(x); ret l; }