Duplicata possible:
Comment convertir une ArrayList contenant des entiers en tableau int primitif?
Comment convertir un ArrayList<Byte>
En un byte[]
?
ArrayList.toArray()
me rend un Byte[]
.
Après avoir appelé toArray (), vous pouvez passer le résultat dans la méthode Apache Commons toPrimitive:
byte[] result = new byte[list.size()];
for(int i = 0; i < list.size(); i++) {
result[i] = list.get(i).byteValue();
}
Oui, les collections de Java sont ennuyeuses en ce qui concerne les types primitifs.
Aucune méthode intégrée ne vient à l'esprit. Cependant, en coder un est assez simple:
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;
}
Notez que cela vous donnera un NullPointerException
si in
est null
ou s'il contient nulls
. Il est assez évident de modifier cette fonction si vous avez besoin d'un comportement différent.
byte[] data = new byte[list.size()];
for (int i = 0; i < data.length; i++) {
data[i] = (byte) list.get(i);
}
Veuillez noter que cela peut prendre un certain temps en raison du fait que les objets Byte
doivent être convertis en valeurs byte
.
De plus, si votre liste contient des valeurs de null
, cela lancera un NullPointerExcpetion
.