3

後でこれらのバイトを含むファイルを作成するために、バイトのArrayListをbyte[]に変換しようとしています。私はこれを行う方法を高低で検索しましたが、それでも頭を悩ませることはできません。これはどのように行うことができますか?

4

4 に答える 4

4

のようなものはありませんArrayList<byte>。宣言すると、ArrayList<Byte>. したがって、これを に変換するための単一の関数イディオムはありませんbyte[]。を割り当ててからbyte[]、ループを記述して値をコピーする必要があります。

ArrayListまたは、そのストアのようなコンテナを持ち、配列を生成できる fastutil ライブラリを使用できますbyte

于 2012-05-19T17:38:53.857 に答える
4
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[].

于 2012-05-19T17:46:46.083 に答える
1

あなたがグアバにアクセスできるなら、それはただBytes.toArray(byteList)です。(開示:私はグアバに貢献します。)

于 2012-05-19T18:20:07.590 に答える
1

関数 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);

ただし、ファイルへの書き込み時にボクシングを使用する場合、ボクシングが問題になるかどうかはわかりません。

于 2012-05-19T17:41:05.867 に答える