how can convert set<result>
map<item, set<string>>
or setmultimap<item, string>
using java 8 streams or multimaps, result
is:
class result { string name; set<item> items; }
for example, start with:
result1: name: name1 items: - item1 - item2 result2: name: name2 items: - item2 - item3
and end with:
item1: - name1 item2: - name1 - name2 item3: - name2
two important methods in code snippet below stream.flatmap & collectors.mapping:
import java.util.map.entry; import java.util.abstractmap.simpleentry; import static java.util.stream.collectors.*; results.stream() //map stream<result> stream<entry<item>,string> .flatmap(it -> it.items.stream().map(item -> new simpleentry<>(item, it.name))) //group result.name item .collect(groupingby(entry::getkey, mapping(entry::getvalue, toset())));
Comments
Post a Comment