Часто в процессе работы с Java 8 возникает необходимость конвертировать Stream в Array. Например, предположим, что есть поток элементов и его нужно преобразовать в массив этих элементов для последующего использования.
Простейший способ это сделать — это использовать метод toArray()
класса Stream
. Однако этот метод возвращает массив типа Object[]
, что может не подойти для случаев, когда нужен массив конкретного типа.
Конвертация в массив конкретного типа
Для преобразования потока в массив конкретного типа, например, String[]
, можно использовать перегруженную версию метода toArray()
, которая принимает в качестве параметра функцию-генератор массива.
Stream<String> stream = Stream.of("a", "b", "c"); String[] array = stream.toArray(String[]::new);
В этом случае, String[]::new
является функцией-генератором массива, которая создает новый массив строк необходимого размера.
Конвертация в массив примитивного типа
В случае, когда требуется преобразовать поток примитивов в массив примитивов, можно воспользоваться специальными методами, которые предоставляются для каждого примитивного типа: toIntArray()
, toLongArray()
и toDoubleArray()
.
IntStream intStream = IntStream.range(0, 10); int[] intArray = intStream.toArray();
В этом примере используется IntStream.range()
, чтобы создать поток целых чисел от 0 до 9, а затем преобразовать его в массив с помощью toArray()
.
Таким образом, Java 8 предоставляет удобные и гибкие методы для конвертации потоков в массивы.
Добавить комментарий