Начиная с набора наборов «групп»:
Set<Set<String>> groups = new HashSet<>();
Я хочу создать новый список наборов, объединив все подмножества с общими элементами:
т.е. начиная с наборовниже:
A = {a, b, c}
B = {c, d, e, f}
C = {f, g, h, i, j}
D = {k, l, m}
E = {m, n, o}
F = {p, q, r}
Окончательный результат будет:
Set 1 = {a, b, c, d, e, f, g, h, i, j}
Set 2 = {k, l, m, n, o}
Set 3 = {p, q, r}
Любые советы о том, как этого добиться, будут оценены.
РЕДАКТИРОВАТЬ: В случае неровных сетовон будет выполнять то же самое.Таким образом, если бы это был метод, он псевдо выглядел бы так:
public void doStuff(){
Set<Set<String>> groups = {{a,b,c}, {c,d,e,f}, {m, n, o}}
Set<Set<String>> newGroups = mergeSubsets(groups);
System.out.println(newGroups);
}
public Set<Set<String>> mergeSubsets(Set<Set<String>> groups){
//some operations
}
Вывод на консоль:
New Groups: {{a,b,c,d,e,f}, {m, n, o}}