void (final List<? extends T> in) { sortAscending(in); for (int i = 1; i < in.size(); i++) { final T child = in.get(i); for (int j = i - 1; j >= 0; --j) { final T parent = in.get(j); if (isAncestor(parent, child)) { onRemove(child); in.remove(i); -- i; break; } } } }