Java 我可以使用addAll集合方法将数组(byte[])中的所有元素(type:byte)添加到byte类型的列表中吗?

Java 我可以使用addAll集合方法将数组(byte[])中的所有元素(type:byte)添加到byte类型的列表中吗?,java,type-conversion,primitive,Java,Type Conversion,Primitive,我必须附加(可变数量的)字节数组。 集合似乎只适用于包装类,即字节。 大约20个小时后,我想出了这个方法,它很有效,但我想知道它是否可以改进(添加到列表中,但欢迎任何其他改进建议:),即 Collections.addAll方法将所有数组元素添加到指定的 收集这就是Collections.addAll方法的调用方式。信息技术 与Arrays.asList方法相同,但比 因此,在性能方面,这是转换阵列的最佳方法 到ArrayList 这里是它的当前测试版 public static byte[]

我必须附加(可变数量的)字节数组。 集合似乎只适用于包装类,即字节。 大约20个小时后,我想出了这个方法,它很有效,但我想知道它是否可以改进(添加到列表中,但欢迎任何其他改进建议:),即

Collections.addAll方法将所有数组元素添加到指定的 收集这就是Collections.addAll方法的调用方式。信息技术 与Arrays.asList方法相同,但比 因此,在性能方面,这是转换阵列的最佳方法 到ArrayList

这里是它的当前测试版

public static byte[] joinArrays(byte[]... args) {

    List<Byte> arrayList = new ArrayList(); 

    for (byte[] arg : args) { // For all array arguments...
        for (int i = 0; i < arg.length; i++) { // For all elements in array
            arrayList.add(Byte.valueOf(arg[i])); // ADD TO LIST
        }
    }
    byte[] returnArray = new byte[arrayList.size()]; 

    for (int i = 0; i < arrayList.size(); i++) {
        returnArray[i] = arrayList.get(i).byteValue(); //Get byte from Byte List
    }
    return returnArray;
}
公共静态字节[]joinArray(字节[]…args){
List arrayList=新建arrayList();
对于(字节[]arg:args){//对于所有数组参数。。。
对于(int i=0;i
您可以坚持使用数组,并避免使用如下方式装箱/拆箱到字节:

public static byte[] joinArrays(byte[]... args) {
    int byteCount = 0;
    for (byte[] arg : args) { // For all array arguments...
        byteCount += arg.length;
    }
    byte[] returnArray = new byte[byteCount];
    int offset = 0;
    for (byte[] arg : args) { // For all array arguments...
        System.arraycopy(arg, 0, returnArray, offset, arg.length);
        offset += arg.length;
    }
    return returnArray;
}
这里有一个变体

public static byte[] joinArrays(byte[]... args) {
    byte[] result = null; 
    if(args.length > 0) {
        result = args[0];
        for(int index = 1; index < args.length; index++){
            result = concat(result, args[index]);
        }       
    }
    return result;
}   

public static byte[] concat(byte[] a, byte[] b) {
    int aLen = a.length;
    int bLen = b.length;
    byte[] c= new byte[aLen+bLen];
    System.arraycopy(a, 0, c, 0, aLen);
    System.arraycopy(b, 0, c, aLen, bLen);
    return c;
}   
公共静态字节[]joinArray(字节[]…args){
字节[]结果=空;
如果(args.length>0){
结果=args[0];
for(int index=1;index
应该移到代码审阅?对!与使用集合相比,内存使用速度更快、更优化。