У меня есть Map<String, Set<String>>
, скажем, это {"a": {"a1", "a2", "a3"}, "b": {"b1", "b2", "b3"}, "c": {"c1", "c2"}, "d": {}}
У меня есть поток наборов ключей карты, и я хочу отобразить каждый элемент потокового набора на элементы соответствующегозначение, установленное на моей карте, например,
INPUT STREAM:
{"a","b"}
{"a","c"}
{"b","c","d"}
ВЫХОДНОЙ ПОТОК:
//first set
{"a1","b1"}
{"a1","b2"}
{"a1","b3"}
{"a2","b1"}
{"a2","b2"}
{"a2","b3"}
{"a3","b1"}
{"a3","b2"}
{"a3","b3"}
//second set
{"a1","c1"}
{"a1","c2"}
{"a2","c1"}
{"a2","c2"}
{"a3","c1"}
{"a3","c2"}
//third set would be flatmapped to nothing, as "d" is mapped to an empty set
Как я могу сделать это с помощью потоков Java8?
Есть ли лучший способ сделать это, используя только API Java SE 8?