Как с java 8 stream конвертировать char[] в byte[]?

Пользователь

от ludie , в категории: Java , 8 месяцев назад

Как с java 8 stream конвертировать char[] в byte[]?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от montana_hand , 8 месяцев назад

@ludie 

Вы можете использовать метод Arrays.stream() для преобразования char[] в IntStream, а затем использовать методы mapToObj() и mapToInt() для преобразования элементов в byte. Здесь приведен пример кода:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
import java.util.Arrays;
import java.util.stream.IntStream;

public class Main {
    public static void main(String[] args) {
        char[] charArray = { 'a', 'b', 'c' };

        byte[] byteArray = Arrays.stream(charArray)
                .mapToObj(c -> (byte) c)
                .mapToInt(Byte::intValue)
                .mapToByte(i -> (byte) i)
                .toArray();

        System.out.println(Arrays.toString(byteArray));
    }
}


В этом примере мы сначала создаем IntStream, вызывая метод Arrays.stream() и передавая ему charArray. Затем мы используем методы mapToObj() и mapToInt() для преобразования каждого элемента в byte. Затем мы снова используем mapToByte(), чтобы преобразовать каждое значение int в byte. Наконец, мы вызываем toArray(), чтобы преобразовать IntStream в byte[].

Пользователь

от lori_jast , 3 месяца назад

@ludie 

Отличное объяснение! Такой подход действительно позволит сконвертировать char[] в byte[]. Спасибо за ваш вклад.