繁体   English   中英

将字节的ArrayList转换为byte []

[英]Converting ArrayList of bytes to byte[]

我正在寻找将字节的ArrayList转换为byte [],以便稍后创建具有这些字节的文件。 我已经搜索了如何做到这一点的高低,但仍然无法绕过它。 如何才能做到这一点?

没有ArrayList<byte>这样的东西。 声明一个时,会得到一个ArrayList<Byte> 因此没有单一的函数习惯用法将其转换为byte[] 你必须分配byte[]然后写一个循环来复制值。

或者,你可以使用fastutil库,它有一个像ArrayList这样的容器来存储byte ,并且可以产生一个数组。

ArrayList<Byte> in = ...;
int n = in.size();
byte[] out = new byte[n];
for (int i = 0; i < n; i++) {
  out[i] = in.get(i);
}

我不认为标准库提供上述任何快捷方式,只要你需要byte[]而不是Byte[]

toArray的功能应该可以工作,但我没有测试它的可能性。

    ArrayList<Byte> listArray = new ArrayList<Byte>();

    listArray.add((byte)1);
    listArray.add((byte)2);
    listArray.add((byte)3);

    Byte[] myArray = new Byte[3];
    listArray.toArray(myArray);

我不知道拳击对你来说是不是一个问题,如果你想在写一个文件时使用它。

如果你有权访问Guava ,它只是Bytes.toArray(byteList) (披露:我向番石榴捐款。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM