🎓 Top 15 Udemy Courses (80-90% Discount): My Udemy Courses - Ramesh Fadatare — All my Udemy courses are real-time and project oriented courses.
▶️ Subscribe to My YouTube Channel (178K+ subscribers): Java Guides on YouTube
▶️ For AI, ChatGPT, Web, Tech, and Generative AI, subscribe to another channel: Ramesh Fadatare on YouTube
In this guide, you will learn about the Stream sorted() method in Java programming and how to use it with an example.
1. Stream sorted() Method Overview
Definition:
The Stream.sorted() method is an intermediate operation that returns a stream consisting of the elements of the original stream, sorted according to their natural order or by a specified comparator. If the stream's elements are not Comparable, a ClassCastException may be thrown during terminal operations.
Syntax:
1. Stream<T> sorted()
2. Stream<T> sorted(Comparator<? super T> comparator)
Parameters:
- comparator: A comparator to be used for comparing stream elements.
Key Points:
- It's an intermediate operation, meaning further operations can be chained after it.
- If no comparator is provided, it assumes that the stream elements are of type Comparable.
- It operates in a stable manner, i.e., equal elements will not be reordered as a result of the sort.
- The operation is stateful as it may need to observe all the elements before producing a result.
- When using parallel streams, the sorted() operation is not as performance-efficient due to the necessity to aggregate the results from different threads.
2. Stream sorted() Method Example
import java.util.Comparator;
import java.util.stream.Stream;
public class StreamSortedExample {
public static void main(String[] args) {
Stream<String> fruitsStream = Stream.of("Cherry", "Banana", "Apple", "Elderberry", "Date");
// Using sorted without a comparator (natural order)
fruitsStream.sorted().forEach(fruit -> System.out.print(fruit + " "));
System.out.println(); // Print a new line for clarity
// Using sorted with a comparator (based on string length)
Stream<String> anotherFruitsStream = Stream.of("Cherry", "Banana", "Apple", "Elderberry", "Date");
anotherFruitsStream.sorted(Comparator.comparingInt(String::length))
.forEach(fruit -> System.out.print(fruit + " "));
}
}
Output:
Apple Banana Cherry Date Elderberry Date Apple Cherry Banana Elderberry
Explanation:
In the provided example:
1. We first sort a stream of fruit names in their natural order (alphabetic order) and print them.
2. Then, we sort another stream of the same fruit names but this time based on their lengths (using a comparator) and print them.
The output clearly showcases how the elements are sorted in different orders based on the chosen sorting mechanism.
My Top and Bestseller Udemy Courses. The sale is going on with a 70 - 80% discount. The discount coupon has been added to each course below:
Build REST APIs with Spring Boot 4, Spring Security 7, and JWT
[NEW] Learn Apache Maven with IntelliJ IDEA and Java 25
ChatGPT + Generative AI + Prompt Engineering for Beginners
Spring 7 and Spring Boot 4 for Beginners (Includes 8 Projects)
Available in Udemy for Business
Building Real-Time REST APIs with Spring Boot - Blog App
Available in Udemy for Business
Building Microservices with Spring Boot and Spring Cloud
Available in Udemy for Business
Java Full-Stack Developer Course with Spring Boot and React JS
Available in Udemy for Business
Build 5 Spring Boot Projects with Java: Line-by-Line Coding
Testing Spring Boot Application with JUnit and Mockito
Available in Udemy for Business
Spring Boot Thymeleaf Real-Time Web Application - Blog App
Available in Udemy for Business
Master Spring Data JPA with Hibernate
Available in Udemy for Business
Spring Boot + Apache Kafka Course - The Practical Guide
Available in Udemy for Business
Comments
Post a Comment
Leave Comment