web-dev-qa-db-ja.com

ArrayList <Byte>をbyte []に​​変換します

可能性のある複製:
整数を含むArrayListをプリミティブint配列に変換する方法?

_ArrayList<Byte>_を_byte[]_に変換する方法

ArrayList.toArray()は_Byte[]_を返します。

23
fulmicoton

ToArray()を呼び出した後、結果をApache Commons toPrimitiveメソッドに渡すことができます。

http://commons.Apache.org/lang/api-2.4/org/Apache/commons/lang/ArrayUtils.html#toPrimitive(Java.lang.Byte []) >

9
JustinKSU
byte[] result = new byte[list.size()];
for(int i = 0; i < list.size(); i++) {
    result[i] = list.get(i).byteValue();
}

ええ、プリミティブ型に関しては、Javaのコレクションは面倒です。

11

組み込みの方法は思い浮かびません。ただし、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;
}

NullPointerExceptioninである場合、またはnullが含まれている場合、これによりnullsが得られることに注意してください。異なる動作が必要な場合、この関数を変更する方法は明らかです。

6
NPE
byte[] data = new byte[list.size()];
for (int i = 0; i < data.length; i++) {
    data[i] = (byte) list.get(i);
}

Byteオブジェクトをbyte値に変換する必要があるため、これには時間がかかる場合があることに注意してください。

また、リストにnull値が含まれている場合、NullPointerExcpetionがスローされます。

2
Vivien Barousse