Returns a new collection with the results of applying the specified function on each element of the source
collection, but only for those elements which return true upon evaluation of the predicate.
This method will count the number of occurrences of each value calculated by applying the
function to each element of the collection with the specified parameter as the second argument.
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.
For each element of the iterable, the function is evaluated, and the results of these evaluations are collected
into a new map, where the transformed value is the key.
This method is similar to the withoutAll method in MutableCollection
with the difference that a new copy of this collection with the elements removed will be returned.