How to sort an Array of Strings in Java
Last Updated :
16 Feb, 2024
Array Of Strings
To sort an array of strings in Java, we can use Arrays.sort() function.
Java
import java.util.Arrays;
import java.util.Collections;
public class SortExample {
public static void main(String[] args)
{
String arr[] = { "practice.geeksforgeeks.org" ,
"www.geeksforgeeks.org" ,
"code.geeksforgeeks.org" };
Arrays.sort(arr);
System.out.printf( "Modified arr[] : \n%s\n\n" ,
Arrays.toString(arr));
Arrays.sort(arr, Collections.reverseOrder());
System.out.printf( "Modified arr[] : \n%s\n\n" ,
Arrays.toString(arr));
}
}
|
Output
Modified arr[] :
Modified arr[] :
[www.geeksforgeeks.org, practice.geeksforgeeks.org, code.geeksforgeeks.org]
ArrayList Of Strings
We have an ArrayList to sort, we can use Collections.sort()
Java
import java.util.ArrayList;
import java.util.Collections;
public class SortExample {
public static void main(String[] args)
{
ArrayList<String> al = new ArrayList<String>();
al.add( "practice.geeksforgeeks.org" );
al.add( "www.geeksforgeeks.org" );
al.add( "code.geeksforgeeks.org" );
Collections.sort(al);
System.out.println( "Modified ArrayList : \n" + al);
Collections.sort(al, Collections.reverseOrder());
System.out.println( "Modified ArrayList : \n" + al);
}
}
|
Output
Modified ArrayList :
Modified ArrayList :
[www.geeksforgeeks.org, practice.geeksforgeeks.org, code.geeksforgeeks.org]
Sort an array of strings using a custom comparator
Java
import java.io.*;
import java.util.Arrays;
import java.util.Comparator;
class SortStrings {
public static void main(String[] args)
{
String[] fruits = { "apple" , "orange" , "banana" ,
"pear" , "kiwi" };
Arrays.sort(fruits,
Comparator.comparing(String::length));
System.out.println( "Sorted fruits by length:" );
for (String fruit : fruits) {
System.out.println(fruit);
}
}
}
|
Output
Sorted fruits by length:
pear
kiwi
apple
orange
banana
Java 8 Streams to sort an array of strings
In this method, the Arrays.stream(arrayOfStrings) creates a stream of strings from the array. The sorted() operation is then applied to the stream, which sorts the elements in their natural order (lexicographical order for strings). Finally, the forEach method is used to print each element of the sorted stream. This method leverages the functional programming features introduced in Java 8 with the Stream API.
Below is the Implementation of the above approach:
Java
import java.util.Arrays;
import java.util.stream.Stream;
public class StringArraySorting {
public static void main(String[] args)
{
String[] arrayOfStrings
= { "banana" , "apple" , "orange" , "grape" };
Arrays
.stream(arrayOfStrings)
.sorted()
.forEach(System.out::println);
}
}
|
Output
apple
banana
grape
orange
Time Complexity: O(NlogN)
Space Complexity: O(1)
Share your thoughts in the comments
Please Login to comment...