从列表创建字节[]

问题描述 投票:8回答:3

最有效的方法是什么?

java arrays list byte
3个回答
15
投票
byte[] byteArray = new byte[byteList.size()];
for (int index = 0; index < byteList.size(); index++) {
    byteArray[index] = byteList.get(index);
}

您可能不喜欢它,但这是创建byte的Authentic™Array®的唯一方法。

如评论中指出的,还有其他方法。但是,这些方法都无法绕开a)创建数组和b)分配每个元素。这个使用iterator

byte[] byteArray = new byte[byteList.size()];
int index = 0;
for (byte b : byteList) {
    byteArray[index++] = b;
}

4
投票

toArray()方法听起来不错的选择。

更新:尽管,正如人们亲切指出的那样,这适用于“装箱”值。因此,普通的toArray()循环看起来也是一个不错的选择。


2
投票

使用for(来自Google的Bytes.toArray(Collection<Byte>)库。]

示例:

Bytes

或类似地,使用toArray

Guava
© www.soinside.com 2019 - 2024. All rights reserved.