Java 8 Program to Sort List of Strings Alphabetically

📘 Premium Read: Access my best content on Medium member-only articles — deep dives into Java, Spring Boot, Microservices, backend architecture, interview preparation, career advice, and industry-standard best practices.

🎓 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 (176K+ subscribers): Java Guides on YouTube

▶️ For AI, ChatGPT, Web, Tech, and Generative AI, subscribe to another channel: Ramesh Fadatare on YouTube

Introduction

Sorting a list of strings alphabetically is a common task in programming, especially in data processing and display operations. Java 8 provides an efficient way to sort lists using the Stream API and lambda expressions. This guide will show you how to create a Java program that sorts a list of strings alphabetically.

Problem Statement

Create a Java program that:

  • Takes a list of strings.
  • Sorts the list alphabetically using Java 8's Stream API.
  • Returns and displays the sorted list.

Example 1:

  • Input: ["Banana", "Apple", "Mango", "Grapes"]
  • Output: ["Apple", "Banana", "Grapes", "Mango"]

Example 2:

  • Input: ["Zebra", "Monkey", "Elephant", "Ant"]
  • Output: ["Ant", "Elephant", "Monkey", "Zebra"]

Solution Steps

  1. Create the List: Initialize a list of strings.
  2. Sort the List Using Java 8 Streams: Convert the list to a stream, apply the sorted() method, and collect the result back into a list.
  3. Display the Result: Print the sorted list.

Java Program

Java 8 Program to Sort a List of Strings Alphabetically

import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; /** * Java 8 Program to Sort a List of Strings Alphabetically * Author: https://www.javaguides.net/ */ public class SortStrings { public static void main(String[] args) { // Example 1: Sorting a list of strings List<String> fruits = Arrays.asList("Banana", "Apple", "Mango", "Grapes"); // Sort the list alphabetically using Java 8 streams List<String> sortedFruits = fruits.stream() .sorted() // Sorts in natural order (alphabetically) .collect(Collectors.toList()); // Display the sorted list System.out.println("Sorted fruits: " + sortedFruits); // Example 2: Sorting another list of strings List<String> animals = Arrays.asList("Zebra", "Monkey", "Elephant", "Ant"); // Sort the list alphabetically using Java 8 streams List<String> sortedAnimals = animals.stream() .sorted() // Sorts in natural order (alphabetically) .collect(Collectors.toList()); // Display the sorted list System.out.println("Sorted animals: " + sortedAnimals); } } 

Explanation

  • Input: The program initializes lists of strings containing the names of fruits and animals.

  • Sorting Using Stream:

    • The stream() method is called on the list to convert it into a stream.
    • The sorted() method sorts the elements in natural order, which for strings means alphabetical order.
    • The collect(Collectors.toList()) method collects the sorted elements back into a list.
  • Output: The program prints the alphabetically sorted list of strings.

Output Example

Example 1 (Fruits List):

Sorted fruits: [Apple, Banana, Grapes, Mango] 

Example 2 (Animals List):

Sorted animals: [Ant, Elephant, Monkey, Zebra] 

Custom Comparator for Case-Insensitive Sorting

If you want to perform case-insensitive sorting (e.g., treating "apple" and "Apple" as equal), you can modify the sorting step by using a custom comparator:

import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; public class SortStringsCaseInsensitive { public static void main(String[] args) { // Example: Case-insensitive sorting List<String> fruits = Arrays.asList("Banana", "apple", "Mango", "grapes"); // Sort the list alphabetically in a case-insensitive manner List<String> sortedFruits = fruits.stream() .sorted(String.CASE_INSENSITIVE_ORDER) .collect(Collectors.toList()); // Display the sorted list System.out.println("Case-insensitive sorted fruits: " + sortedFruits); } } 

Output Example (Case-Insensitive Sorting):

Case-insensitive sorted fruits: [apple, Banana, grapes, Mango] 

Conclusion

This Java 8 program demonstrates how to sort a list of strings alphabetically using streams. The sorted() method provides a simple and effective way to achieve this, and by using Collectors.toList(), the sorted stream can be collected back into a list. The program can be easily extended or modified, such as by using a custom comparator for case-insensitive sorting. This approach is efficient and leverages the power of Java 8's functional programming features.

Comments

Spring Boot 3 Paid Course Published for Free
on my Java Guides YouTube Channel

Subscribe to my YouTube Channel (165K+ subscribers):
Java Guides Channel

Top 10 My Udemy Courses with Huge Discount:
Udemy Courses - Ramesh Fadatare