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.