使用Java 8的lambda表达式,将List 转换为原始字节[] [duplicate]

问题描述 投票:1回答:1

请先阅读!我的问题在Java 8

显然,在提出这些问题时,java 8还不存在。

How to convert an ArrayList containing Integers to primitive int array?至今10年!Convert ArrayList<Byte> into a byte[]今天已经8年了!

我有此代码:

List<Byte> listByte = new ArrayList<>();

// fill the List with Byte Wrapper...

我有错误

byte[] arrayByte = listByte.stream().map(B -> B.byteValue()).toArray();

我也有错误。

byte[] arrayByte = listByte.toArray(new byte[0]);

还有其他方法代替循环方法吗?

list lambda java-8 primitive
1个回答
0
投票

您可以尝试这样做:

listByte.stream().collect(ByteArrayOutputStream::new, (baos, i) -> baos.write((byte) i),
        (baos1, baos2) -> baos1.write(baos2.toByteArray(), 0, baos2.size()))
        .toByteArray()
© www.soinside.com 2019 - 2024. All rights reserved.