如何在Java中使用带有字节数组的lambda表达式?

Shi*_*ang 1 java lambda

我有一个类型的变量byte[],而不是Byte[].

我正在尝试使用Arrays::stream方法用lambda处理这个数组.

然而,有没有这样的重载Arrays::stream这需要byte[]作为参数.

重新加载Arrays::stream(T[] data)也不起作用.
我猜是因为byte []是java prime类型字节的数组,不能将其视为泛型类型参数T.

我试着投byte[]Byte[]int[],而这一切也失败了.

Era*_*ran 6

你可以创建一个IntStream:

byte[] bytearr = new byte[10];
IntStream ints = IntStream.range (0, bytearr.length).map (i->bytearr[i]);
Run Code Online (Sandbox Code Playgroud)

或者Stream<Byte>:

byte[] bytearr = new byte[10];
Stream<Byte> bytes = IntStream.range (0, bytearr.length).mapToObj (i->bytearr[i]);
Run Code Online (Sandbox Code Playgroud)