Как преобразовать byte [] в Byte [], а также Byte [] в байт [], если вы не используете какую-либо стороннюю библиотеку? Есть ли способ сделать это быстро, просто используя стандартную библиотеку?
Как преобразовать байт [] в Byte [], и наоборот?
Ответ 1
 Byte class - это оболочка для примитива Byte. Это должно сделать работу:
byte[] bytes = new byte[10];
Byte[] byteObjects = new Byte[bytes.length];
int i=0;    
// Associating Byte array values with bytes. (byte[] to Byte[])
for(byte b: bytes)
   byteObjects[i++] = b;  // Autoboxing.
....
int j=0;
// Unboxing byte values. (Byte[] to byte[])
for(Byte b: byteObjects)
    bytes[j++] = b.byteValue();
		Ответ 2
Вы можете использовать метод toPrimitive в классе ArrayUtils библиотеки Apache Commons, Как предлагается здесь - Java - Byte [] to byte []
Ответ 3
byte [] to Byte []:
byte[] bytes = ...;
Byte[] byteObject = ArrayUtils.toObject(bytes);
Байт [] в байт []:
Byte[] byteObject = new Byte[0];
byte[] bytes = ArrayUtils.toPrimitive(byteObject);
		Ответ 4
Решение Java 8:
Byte[] toObjects(byte[] bytesPrim) {
    Byte[] bytes = new Byte[bytesPrim.length];
    Arrays.setAll(bytes, n -> bytesPrim[n]);
    return bytes;
}
К сожалению, вы не можете сделать это для преобразования из Byte[] в Byte[]. Arrays имеет setAll для double[], int[] и long[], но не для других примитивных типов.
Ответ 5
От байта [] до байта []:
    byte[] b = new byte[]{1,2};
    Byte[] B = new Byte[b.length];
    for (int i = 0; i < b.length; i++)
    {
        B[i] = Byte.valueOf(b[i]);
    }
От байта [] до байта [] (используя наш ранее определенный B):
    byte[] b2 = new byte[B.length];
    for (int i = 0; i < B.length; i++)
    {
        b2[i] = B[i];
    }
		Ответ 6
byte[] toPrimitives(Byte[] oBytes)
{
    byte[] bytes = new byte[oBytes.length];
    for(int i = 0; i < oBytes.length; i++){
        bytes[i] = oBytes[i];
    }
    return bytes;
}
Inverse:
//byte[] to Byte[]
Byte[] toObjects(byte[] bytesPrim) {
    Byte[] bytes = new Byte[bytesPrim.length];
    int i = 0;
    for (byte b : bytesPrim) bytes[i++] = b; //Autoboxing
    return bytes;
}