Returns a new MutableCollection with the results of applying the specified function to each element of the source
collection, but only for elements that evaluate to true for the specified predicate.
Returns true if both OrderedIterables have the same length
and predicate returns true for all corresponding elements e1 of
this OrderedIterable and e2 of other.
For each element of the iterable, the function is evaluated and the results of these evaluations are collected
into a new multimap, where the transformed value is the key and the original values are added to the same (or similar)
species of collection as the source iterable.