可能性のある複製:
整数を含むArrayListをプリミティブint配列に変換する方法?
_ArrayList<Byte>
_を_byte[]
_に変換する方法
ArrayList.toArray()
は_Byte[]
_を返します。
ToArray()を呼び出した後、結果をApache Commons toPrimitiveメソッドに渡すことができます。
byte[] result = new byte[list.size()];
for(int i = 0; i < list.size(); i++) {
result[i] = list.get(i).byteValue();
}
ええ、プリミティブ型に関しては、Javaのコレクションは面倒です。
組み込みの方法は思い浮かびません。ただし、1つをコーディングするのは非常に簡単です。
public static byte[] toByteArray(List<Byte> in) {
final int n = in.size();
byte ret[] = new byte[n];
for (int i = 0; i < n; i++) {
ret[i] = in.get(i);
}
return ret;
}
NullPointerException
がin
である場合、またはnull
が含まれている場合、これによりnulls
が得られることに注意してください。異なる動作が必要な場合、この関数を変更する方法は明らかです。
byte[] data = new byte[list.size()];
for (int i = 0; i < data.length; i++) {
data[i] = (byte) list.get(i);
}
Byte
オブジェクトをbyte
値に変換する必要があるため、これには時間がかかる場合があることに注意してください。
また、リストにnull
値が含まれている場合、NullPointerExcpetion
がスローされます。