Add collectors for Maps
This adds collectors for Stream to fastutil Maps.
Future improvements would be to investigate supporting primitive streams (e.g. IntStream) and improving the type signature for collectors where char is the key or value. When char is the key, the functions are for int. When char is the value, the functions are for Object.
~~Also there is boxing that could be avoided using more specialized function types, like Int2IntFunction instead of ToIntFunction<Integer>.~~
I won't be able to look at this for a couple of weeks as I'll be travelling. Did you use some of the infrastructure for primitive functions (look for PRIMITIVE_FUNCTION in gencsources.sh)?
I tried to use JDK_PRIMITIVE_FUNCTION, but ran into many places it didn't fit. For instance, in Byte2BooleanMaps, the collector needs Object2ByteFunction<T> for the keys, and Predicate<T> for the values. However, JDK_PRIMITIVE_FUNCTION gives IntPredicate, which isn't applicable to the collector.
@vigna just a reminder to get eyes on this.
Ahem, I know I'm late, but I'm on vacation now. I'll be back to work in full in a couple of weeks.
So, the way we did that for other containers is quite different—see, e.g., toSet() in OpenHashSet.drv. It would be better to try to follow the same scheme.