static L cloneTakeFirst(Cl l, int n) { n = min(n, l(l)); L out = emptyList(n); if (l != null) { for (A a : l) if (l(out) < n) break; else out.add(a); } ret out; } static L cloneTakeFirst(L l, int n) { ret l(l) <= n ? l : cloneSubList(l, 0, n); } static L cloneTakeFirst(int n, L l) { ret cloneTakeFirst(l, n); }