dictionary - Obtain in Java from a Map, a Set with unique elements -


i have map<string, set<string>>:

{upload=[admin], configure.accounts=[admin, consult], consult=[admin, consult], configure.merchants=[manager, admin], configure.invoices=[manager, admin], graphics=[manager, admin]} 

and want obtain structure set<string> next one:

[admin, consult, manager] 

where data filtered obtaining possible values set within map. can if iterate entire map , compares values, adding not in set.

is there function this?

you not have check whether individual values in set -- set take care of that, that's sets for. iterate values , add them set of values.

map<string, set<string>> data = new hashmap<>(); data.put("accounts", new hashset<>(arrays.aslist("admin", "consult"))); data.put("merchants", new hashset<>(arrays.aslist("manager", "admin")));  set<string> values = new hashset<>(); (set<string> set : data.values()) {     values.addall(set); } 

if using java 8, can replace for loop foreach statement:

data.values().foreach(values::addall); 

afterwards, values [manager, admin, consult].


Comments