* Create a stream from Collection
```
import java.util.Arrays;
import java.util.List;
import java.util.stream.Stream;
class Main{
public static void main(String[] args){
List<String> collection = Arrays.asList("Java", "C++");
Stream<String> stream = collection.stream();
System.out.println(Arrays.toString(stream.toArray(String[]::new)));
Stream<String> parallel_stream = collection.parallelStream();
System.out.println(Arrays.toString(parallel_stream.toArray()));
}
}
```
* Create a stream from specified values
```
import java.util.Arrays;
import java.util.stream.Stream;
class Main {
public static void main(String[] args) {
Stream<String> stream = Stream.of("1", "4");
System.out.println(Arrays.toString(stream.toArray()));
}
}
```
* Create stream from an array
```
import java.util.Arrays;
import java.util.stream.Stream;
class Main {
public static void main(String[] args) {
String[] arr = { "Java", "C++" };
Stream<String> stream = Arrays.stream(arr);
System.out.println(Arrays.toString(stream.toArray()));
int start = 0; // inclusive
int end = 2; // exclusive
stream = Arrays.stream(arr, start, end);
System.out.println(Arrays.toString(stream.toArray()));
stream = Stream.of(arr);
System.out.println(Arrays.toString(stream.toArray(String[]::new)));
}
}
```
* Create an empty stream
```
import java.util.Arrays;
import java.util.stream.Stream;
class Main {
public static void main(String[] args) {
Stream<String> emptyStream = Stream.empty();
System.out.println(Arrays.toString(emptyStream.toArray()));
}
}
```
* Create a stream from Builder
```
import java.util.Arrays;
import java.util.stream.Stream;
class Main {
public static void main(String[] args) {
Stream<String> streamBuilder = Stream.<String>builder()
.add("Stream")
.add("API")
.build();
System.out.println(Arrays.toString(streamBuilder.toArray()));
}
}
```
* Create an infinite stream using Stream.iterate() method
```
import java.util.Arrays;
import java.util.stream.Stream;
class Main {
public static void main(String[] args) {
Stream<Integer> IntegerStream = Stream.iterate(0, n -> n + 1).limit(10);
Stream<Double> DoubleStream = Stream.iterate(0.0, n -> n + 1.0).limit(5);
System.out.println(Arrays.toString(IntegerStream.toArray()));
System.out.println(Arrays.toString(DoubleStream.toArray()));
}
}
```
* Create an infinite stream using Stream.generate() method
```
import java.util.Arrays;
import java.util.Random;
import java.util.stream.Stream;
class Main {
public static void main(String[] args) {
Stream<Double> randomDoubleStream = Stream.generate(Math::random).limit(4);
System.out.println(Arrays.toString(randomDoubleStream.toArray()));
}
}
```
* Create a stream from a sequence that matches a pattern
```
import java.util.Arrays;
import java.util.regex.Pattern;
import java.util.stream.Stream;
class Main {
public static void main(String[] args) {
String input = "Java C++";
Stream<String> stream = Pattern.compile("\\s").splitAsStream(input);
System.out.println(Arrays.toString(stream.toArray()));
}
}
```
```