static O[] paramsWithout(O[] a1, O... keys) { if (l(a1) == 1 && a1[0] instanceof Map) ret new O[] { mapMinus((Map) a1[0], keys) }; Set set = lithashset(keys); new L l; int n = l(a1); for (int i = 0; i < n; i += 2) if (i == n-1) l.add(a1[i]); else if (!set.contains(a1[i])) { l.add(a1[i]); l.add(a1[i+1]); } ret toObjectArray(l); }