We did in fact prototype some Collector.OfXxx
specializations. What we found — in addition to the obvious annoyance of more specialized types — was that this was not really very useful without having a full complement of primitive-specialized collections (like Trove does, or GS-Collections, but which the JDK does not have). Without an IntArrayList, for example, a Collector.OfInt merely pushes the boxing somewhere else — from the Collector to the container — which no big win, and lots more API surface.