static String[] dropLast(String[] a, int n) { n = Math.min(n, a.length); String[] b = new String[a.length-n]; System.arraycopy(a, 0, b, 0, b.length); return b; } static L dropLast(L l) { ret subList(l, 0, l(l)-1); } static L dropLast(int n, L l) { ret subList(l, 0, l(l)-n); } static L dropLast(Iterable l) { ret dropLast(asList(l)); } static S dropLast(S s) { ret substring(s, 0, l(s)-1); }