static L filterByField(Collection c, S field, O value) { new L l; for (A x : c) if (eq(getOpt(x, field), value)) l.add(x); ret l; }