Set consolidation: Difference between revisions

→‎{{header|Java}}: include recursive version
(→‎{{header|Java}}: include recursive version)
Line 588:
}
 
// iterative
private static <E> List<Set<E>>
consolidate(Collection<? extends Set<E>> sets) {
Line 604 ⟶ 605:
}
return r;
}
 
// recursive
private static <E> List<Set<E>> consolidateR(List<Set<E>> sets) {
if (sets.size() < 2)
return sets;
List<Set<E>> r = new ArrayList<>();
r.add(sets.get(0));
for (Set<E> x : consolidateR(sets.subList(1, sets.size()))) {
if (!Collections.disjoint(r.get(0), x)) {
r.get(0).addAll(x);
} else {
r.add(x);
}
}
return r;
}
 
Anonymous user