簡體   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