Last Updated : 03 Mar, 2023
Arrays.stream()The stream(T[] array) method of Arrays class in Java, is used to get a Sequential Stream from the array passed as the parameter with its elements. It returns a sequential Stream with the elements of the array, passed as parameter, as its source. Example:
Java
// Java program to demonstrate Arrays.stream() method
import java.util.*;
import java.util.stream.*;
class GFG {
public static void main(String[] args)
{
// Creating a String array
String[] arr = { "Geeks", "for", "Geeks" };
// Using Arrays.stream() to convert
// array into Stream
Stream<String> stream = Arrays.stream(arr);
// Displaying elements in Stream
stream.forEach(str -> System.out.print(str + " "));
}
}
Output:
Geeks for GeeksStream.of()
The Stream of(T... values) returns a sequential ordered stream whose elements are the specified values. Stream.of() method simply calls the Arrays.stream() method for non-primitive types. Example:
Java
// Java code for Stream of(T... values)
// to get a sequential ordered stream whose
// elements are the specified values.
import java.util.*;
import java.util.stream.Stream;
class GFG {
// Driver code
public static void main(String[] args)
{
// Creating an Stream
Stream stream = Stream.of("Geeks", "for", "Geeks");
// Displaying the sequential ordered stream
stream.forEach(str -> System.out.print(str + " "));
}
}
Output:
Geeks for Geeks
These both methods are the two most commonly used methods for creating a sequential stream from a specified array. Both these methods returns a Stream<T> when called with a non-primitive type T.
Difference between Arrays.stream() and Stream.of()
Even if Stream.of() is a wrapper over the Arrays.stream() method, there are certain point of differences which clarifies as when to use a Arrays.stream() or when to use Stream.of(). Below are some of the differences between the above two stated methods:
// Java program to demonstrate return type
// of Arrays.stream() and Stream.of() method
// for primitive arrays
import java.util.*;
import java.util.stream.*;
class GFG {
public static void main(String[] args)
{
// Creating an integer array
int arr[] = { 1, 2, 3, 4, 5 };
// --------- Using Arrays.stream() ---------
// to convert int array into Stream
IntStream intStream = Arrays.stream(arr);
// Displaying elements in Stream
intStream.forEach(str -> System.out.print(str + " "));
// --------- Using Stream.of() ---------
// to convert int array into Stream
Stream<int[]> stream = Stream.of(arr);
// Displaying elements in Stream
stream.forEach(str -> System.out.print(str + " "));
}
}
Output:
1 2 3 4 5 [I@404b9385
// Java program to demonstrate need of flattening
// Stream.of() method returned type for primitive arrays
import java.util.*;
import java.util.stream.*;
class GFG {
public static void main(String[] args)
{
// Creating an integer array
int arr[] = { 1, 2, 3, 4, 5 };
// --------- Using Arrays.stream() ---------
// to convert int array into Stream
IntStream intStream = Arrays.stream(arr);
// Displaying elements in Stream
intStream.forEach(str -> System.out.print(str + " "));
// --------- Using Stream.of() ---------
// to convert int array into Stream
Stream<int[]> stream = Stream.of(arr);
// ***** Flattening of Stream<int[]> into IntStream *****
// flattenning Stream<int[]> into IntStream
// using flatMapToInt()
IntStream intStreamNew = stream.flatMapToInt(Arrays::stream);
// Displaying elements in IntStream
intStreamNew.forEach(str -> System.out.print(str + " "));
}
}
Output:
1 2 3 4 5 1 2 3 4 5
// Java program to demonstrate return type
// of Arrays.stream() method
// for primitive arrays of char
import java.util.*;
import java.util.stream.*;
class GFG {
public static void main(String[] args)
{
// Creating a character array
char arr[] = { '1', '2', '3', '4', '5' };
// --------- Using Arrays.stream() ---------
// This will throw error
// to convert char array into Stream
Arrays.stream(arr);
}
}
Compilation Error in java code :- prog.java:20: error: no suitable method found for stream(char[]) Arrays.stream(arr); ^
// Java program to demonstrate return type
// of Stream.of() method
// for primitive arrays of char
import java.util.*;
import java.util.stream.*;
class GFG {
public static void main(String[] args)
{
// Creating a character array
char arr[] = { '1', '2', '3', '4', '5' };
// --------- Using Stream.of() ---------
// Will work efficiently
// to convert int array into Stream
Stream<char[]> stream = Stream.of(arr);
// Displaying elements in Stream
stream.forEach(str -> System.out.print(str + " "));
}
}
Output:
[C@548c4f57
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4