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