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.
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.