Подтвердить что ты не робот

Преобразовать ArrayList <Byte> в байт []

Возможный дубликат:
Как преобразовать ArrayList, содержащий целые числа в примитивный массив int?

Как преобразовать ArrayList<Byte> в byte[]?

ArrayList.toArray() возвращает a byte[].

4b9b3361

Ответ 2

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

Да, коллекции Java раздражают, когда дело доходит до примитивных типов.

Ответ 3

На встроенный метод не приходит в голову. Однако кодирование одной строки довольно просто:

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 is null или если он содержит nulls. Очень очевидно, как изменить эту функцию, если вам нужно другое поведение.

Ответ 4

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

Обратите внимание, что это может занять некоторое время из-за того, что объекты Byte должны быть преобразованы в значения Byte.

Кроме того, если ваш список содержит значения null, это вызовет NullPointerExcpetion.