Ho le seguenti classi:Algoritmo per raggruppare gli oggetti
class Sport {
private String sportsName;
private List<People> peopleWhoPlayThisSport;
//...
}
class People {
private String name;
private long uniqueId;
// ...
}
mio input è una lista di oggetti sportivi, per semplicità considerare i seguenti esempi:
sport1 - Football, <Sam, Dylan>
sport2 - Basketball, <Tyler, John>
sport3 - Baseball, <Carter, Dylan>
sport4 - Hockey, <Kane, Michael>
sport5 - Soccer, <Carter, Frank>
devo creare a List<List<>>
, in modo tale che la lista interna sia tutti gli sport che hanno almeno 1 giocatore comune (la proprietà transitiva si applica qui). Nell'esempio sopra, l'output dovrebbe essere,
<<sport1,sport3,sport5> , <sport2> , <sport4>>
Qualche suggerimento su come risolvere questo e/o pseudo-codice?
Disjoint set datastructure. Union-find. –