Solución:
byte[] byteArray = new byte[byteList.size()];
for (int index = 0; index < byteList.size(); index++) {
byteArray[index] = byteList.get(index);
}
Puede que no le guste, pero esa es la única forma de crear un Genuine ™ Array® de byte
.
Como se señaló en los comentarios, hay otras formas. Sin embargo, ninguna de esas formas evita a) crear una matriz yb) asignar cada elemento. Éste usa un iterador.
byte[] byteArray = new byte[byteList.size()];
int index = 0;
for (byte b : byteList) {
byteArray[index++] = b;
}
los toArray()
El método parece una buena elección.
Actualizar: Aunque, como la gente ha señalado amablemente, esto funciona con valores “encuadrados”. Entonces un llano for
-loop también parece una muy buena elección.
Utilizando Bytes.toArray(Collection<Byte>)
(de la biblioteca Guava de Google).
Ejemplo:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import com.google.common.primitives.Bytes;
class Test {
public static void main(String[] args) {
List<Byte> byteList = new ArrayList<Byte>();
byteList.add((byte) 1);
byteList.add((byte) 2);
byteList.add((byte) 3);
byte[] byteArray = Bytes.toArray(byteList);
System.out.println(Arrays.toString(byteArray));
}
}
O de manera similar, usando PCJ:
import bak.pcj.Adapter;
// ...
byte[] byteArray = Adapter.asBytes(byteList).toArray();
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)