"Multiplying" 2 lists of Strings together in Java 8
Method name

I agree with you, multiply() does sound a bit odd for lists of non-numbers... perhaps combine() or cartesianProduct() are arguably better names?

Lambdas

'Single-shot' lambda definitions does not require the use of { return ...; }:

.map( s1 -&gt; list2.stream().map( s2 -&gt; s1 + s2 ).collect( Collectors.toList() ) )


Actually, when you are mapping an element to a Collection, only to flatMap() it immediately afterwards, you can probably do without the inner collect():

return list1.stream()
            .flatMap( s1 -&gt; list2.stream().map( s2 -&gt; s1 + s2 ) )
            .collect( Collectors.toList() );