Introduction

Sorting words alphabetically is essential for data organization and text processing applications.


Method 1: Using Arrays.sort()

import java.util.Arrays;

public class SortWordsAlphabetically {
    
    public static String sortWords(String sentence) {
        if (sentence == null || sentence.isEmpty()) {
            return sentence;
        }
        
        String[] words = sentence.split(" ");
        Arrays.sort(words);
        
        return String.join(" ", words);
    }
    
    public static void main(String[] args) {
        System.out.println(sortWords("zebra apple mango banana"));
        // Output: apple banana mango zebra
    }
}

Output:

apple banana mango zebra

Method 2: Case-Insensitive Sorting

import java.util.Arrays;

public class SortWordsIgnoreCase {
    
    public static String sortWords(String sentence) {
        String[] words = sentence.split(" ");
        Arrays.sort(words, String::compareToIgnoreCase);
        
        return String.join(" ", words);
    }
}

Method 3: Using Streams

import java.util.Arrays;
import java.util.stream.Collectors;

public class SortWordsStream {
    
    public static String sortWords(String sentence) {
        return Arrays.stream(sentence.split(" "))
                    .sorted()
                    .collect(Collectors.joining(" "));
    }
}

Frequently Asked Questions

Q1. Case-sensitive sorting?

Answer: Default yes, use compareToIgnoreCase() for case-insensitive.

Advertisement

Q2. Reverse order?

Answer: Use reversed() in streams.

Q3. Sort by length?

Answer: Comparator:

(w1, w2) -> Integer.compare(w1.length(), w2.length())

Q4. Performance?

Answer: All O(n log n), similar speed.

Q5. Stable sort?

Answer: Yes, Java sorts are stable.

Q6. Unicode support?

Answer: Yes, all methods support Unicode.

Q7. Preserve original?

Answer: Create copy before sorting.

Q8. Sort custom comparator?

Answer: Provide custom Comparator.

Q9. Large datasets?

Answer: Arrays.sort() optimized for large data.

Q10. Multiple sort criteria?

Answer: Chain comparators.


Conclusion

Arrays.sort() most efficient. Streams more modern. Choose based on requirements and Java version.