How to convert short[] into List in Java with streams?

Tags: , ,



I figured I could extrapolate from this question but I can’t

I can of course do

short[] shortarray = {0,1,2};
List<Short> shortList = new ArrayList<Short>();
for (Short s : shortarray) {
    shortList.add(s);
}

But I’m wondering how to do it with streams.

List<Short> shortList = Arrays.stream(shortarray).boxed()
                              .collect(Collectors.toList());

doesn’t work for example but yields The method stream(T[]) in the type Arrays is not applicable for the arguments (short[])

Answer

Why not

IntStream.range(0, shortarray.length)
         .mapToObj(s -> shortarray[s])
         .collect(Collectors.toList());


Source: stackoverflow