java - bytes - Convertir ArrayList<Byte> en un byte
convertir un string a un arreglo de bytes en java (4)
Después de llamar a toArray (), puede pasar el resultado al método Apache Commons toPrimitive:
Posible duplicado:
¿Cómo convertir un ArrayList que contiene enteros a una matriz int primitiva?
¿Cómo convertir un ArrayList<Byte>
en un byte[]
?
ArrayList.toArray()
me devuelve un Byte[]
.
Ningún método incorporado viene a la mente. Sin embargo, codificar uno es bastante sencillo:
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;
}
Tenga en cuenta que esto le dará una NullPointerException
si es null
o si contiene nulls
. Es bastante obvio cómo cambiar esta función si necesita un comportamiento diferente.
byte[] data = new byte[list.size()];
for (int i = 0; i < data.length; i++) {
data[i] = (byte) list.get(i);
}
Tenga en cuenta que esto puede llevar algún tiempo debido al hecho de que los objetos Byte
deben convertirse en valores de byte
.
Además, si su lista contiene valores null
, esto generará un NullPointerExcpetion
.
byte[] result = new byte[list.size()];
for(int i = 0; i < list.size(); i++) {
result[i] = list.get(i).byteValue();
}
Sí, las colecciones de Java son molestas cuando se trata de tipos primitivos.