Расширяя с преобразование массива подписанных байтов в неподписанные байты , можно ли это сделать более элегантно без неуклюжего цикла for с использованием Lambdas?Итак,
подписано byte[] -> без знака int[]
byte[]
int[]
Замечу, что Arrays.stream(byte[]).
Arrays.stream(byte[])
Да, вы можете достичь этого, используя IntStream:
IntStream
public static int[] toUnsignedIntArray(byte[] array) { return IntStream.range(0, array.length) .map(idx -> array[idx] & & 0xFF) .toArray(); }
Для получения дополнительной информации см. этот ответ .
Вы можете сделать это так.
int[] unsigned = IntStream.range(0, bytes.length) .map(i -> 0x7F & bytes[i]) .toArray();
Конечно, вы можете:
int[] unsigned = IntStream.range(0, signed.length) .map(i -> signed[i] & 0xFF) .toArray();
, где подписано представляет массив байтов.