Ответ
Да, в Java 8+ для этого есть несколько методов.
1. Использование Arrays.stream(T[] array) (наиболее распространенный способ):
String[] stringArray = {"Java", "Stream", "API"};
Stream<String> streamFromArray = Arrays.stream(stringArray);
2. Использование Stream.of(T... values):
Stream<String> stream = Stream.of(stringArray); // Массив как varargs
Stream<String> directStream = Stream.of("A", "B", "C"); // Элементы напрямую
3. Для массивов примитивных типов используйте специализированные классы:
int[] intArray = {1, 2, 3, 4, 5};
IntStream intStream = Arrays.stream(intArray); // Возвращает IntStream
// Или
IntStream anotherIntStream = IntStream.of(intArray);
// Аналогично для long и double: LongStream, DoubleStream.
Ключевые различия:
Arrays.stream()для примитивных массивов возвращает соответствующийIntStream,LongStream,DoubleStream, что эффективнее и предоставляет дополнительные методы (sum, average).Stream.of()для примитивного массива создастStream<int[]>из одного элемента (самого массива), что обычно нежелательно.
Рекомендация: Для объектов используйте любой метод. Для примитивов всегда предпочитайте Arrays.stream() или IntStream.of().