Maneira mais limpa de indexar uma coleção por uma propriedade dos itens que são uma coleção

eu tenho umList<Foo> e quer uma goiabaMultimap<String, Foo> onde agrupamos oFoopor cada tag de suaCollection<String> getTags() função.

Eu estou usando java 8, portanto, lambdas e referências de método são boas / incentivadas.

Por exemplo, se eu tiver:

foo1, tags=a,b,c
foo2, tags=c,d
foo3, tags=a,c,e

Eu teria umMultimap<String, Foo> com:

a -> foo1, foo3
b -> foo1
c -> foo1, foo2, foo3
d -> foo2
e -> foo3

questionAnswers(2)

yourAnswerToTheQuestion