Java 8 introduced the Stream API, a sequence of objects supporting sequential and parallel aggregate operations. By design, a
Stream doesn't store any data, so it is not a data structure. It also doesn't modify the original data source.
In simple words, Java 8 streams are just wrappers around a data source like collections, arrays, or other I/O channels. The
Stream API provides methods that can be chained together to produce the desired results.
In this article, you'll learn how to reverse the elements of a stream in Java 8 and higher.
Note that this tutorial is not about sorting a stream in reverse order but simply reversing the position of the elements in the
Let us start s with a basic example:
// create a simple Stream of strings Stream<String> stream = Stream.of("Alex", "John", "Baray", "Emma"); // reverse stream and print elements stream.collect(Collectors.toCollection(LinkedList::new)) .descendingIterator().forEachRemaining(System.out::println);
In the above example, we first created a
Stream of string and then collect the elements into a
LinkedList is a double-linked data structure in Java, we can iterate it in any direction: forward and backward.
We preferred to loop over the
LinkedList object in the reverse direction using the
descendingIterator() method. Here is what the output looks like:
Emma Baray John Alex