Как использовать функции Lambda для отмены подписи байтов Java с подписью? - PullRequest
0 голосов
/ 20 мая 2018

Расширяя с преобразование массива подписанных байтов в неподписанные байты , можно ли это сделать более элегантно без неуклюжего цикла for с использованием Lambdas?Итак,

подписано byte[] -> без знака int[]

Замечу, что Arrays.stream(byte[]).

нет

Ответы [ 3 ]

0 голосов
/ 20 мая 2018

Да, вы можете достичь этого, используя IntStream:

public static int[] toUnsignedIntArray(byte[] array) {
    return IntStream.range(0, array.length)
                    .map(idx -> array[idx] &  & 0xFF)
                    .toArray();
}

Для получения дополнительной информации см. этот ответ .

0 голосов
/ 20 мая 2018

Вы можете сделать это так.

int[] unsigned = IntStream.range(0, bytes.length)
                          .map(i -> 0x7F & bytes[i])
                          .toArray();
0 голосов
/ 20 мая 2018

Конечно, вы можете:

int[] unsigned = IntStream.range(0, signed.length)
                          .map(i -> signed[i] & 0xFF)
                          .toArray();

, где подписано представляет массив байтов.

...