将ArrayList <Byte>转换为byte []

ful*_*ton 22 java arrays arraylist primitive-types

可能重复:
如何将包含整数的ArrayList转换为原始int数组?

如何转换ArrayList<Byte>byte[]

ArrayList.toArray()让我回来了Byte[].

Mic*_*rdt 11

byte[] result = new byte[list.size()];
for(int i = 0; i < list.size(); i++) {
    result[i] = list.get(i).byteValue();
}
Run Code Online (Sandbox Code Playgroud)

是的,Java的集合在原始类型方面很烦人.


Jus*_*KSU 9

在调用toArray()之后,您可以将结果传递给Apache Commons toPrimitive方法:

http://commons.apache.org/lang/api-2.4/org/apache/commons/lang/ArrayUtils.html#toPrimitive(java.lang.Byte []) >

  • byte[] b_arr= ArrayUtils.toPrimitive(arrayList.toArray(new Byte[0])); (2认同)

NPE*_*NPE 6

没有内置的方法想到.但是,编写一个代码非常简单:

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;
}
Run Code Online (Sandbox Code Playgroud)

请注意,这将为您提供NullPointerExceptionif inis null或者是否包含nulls.如果您需要不同的行为,如何更改此功能非常明显.