如何将 ArrayList<Byte>
转换为 byte[]
?
ArrayList.toArray()
返回一个 Byte[]
。
可能是重复问题:
如何将包含整数的 ArrayList 转换为原始 int 数组?
如何将 ArrayList<Byte>
转换为 byte[]
?
ArrayList.toArray()
返回一个 Byte[]
。
可能是重复问题:
如何将包含整数的 ArrayList 转换为原始 int 数组?
byte[] result = new byte[list.size()];
for(int i = 0; i < list.size(); i++) {
result[i] = list.get(i).byteValue();
}
是的,当涉及到基本类型时,Java的集合确实很烦人。
在调用toArray()方法后,您可以将结果传递给Apache Commons的toPrimitive方法:
toArray()
。 - Marcelo我想不到任何内置的方法。然而,编写一个相当简单:
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;
}
in
为 null
或包含 nulls
,这将导致您出现 NullPointerException
。如果需要不同的行为,则很明显如何更改此函数。byte[] data = new byte[list.size()];
for (int i = 0; i < data.length; i++) {
data[i] = (byte) list.get(i);
}
Byte
对象转换为 byte
值。null
值,它将抛出一个 NullPointerExcpetion
。