Skip to content
Related Articles

Related Articles

Sort an array of strings according to string lengths using Map

View Discussion
Improve Article
Save Article
  • Last Updated : 08 Aug, 2019
View Discussion
Improve Article
Save Article

Given an array of strings, we need to sort the array in increasing order of string lengths, using Map Data Structure.


Input: str[] = {“GeeksforGeeeks”, “I”, “from”, “am”}
Output: I am from GeeksforGeeks

Input: str[] = {“You”, “are”, “beautiful”, “looking”}
Output: You are looking beautiful

Approach: The given approach is for Java using TreeMap

Below is the implementation of the above approach:

// Java program to sort an Array of
// Strings according to their lengths
// using Map
import java.util.*;
import java.util.Map.Entry;
public class GFG {
    // Function to Sort the array of string
    // according to lengths using Map
    static String[] sort(String[] str, int n)
        TreeMap<Integer, ArrayList<String> > map
            = new TreeMap<Integer, ArrayList<String> >();
        for (int i = 0; i < n; i++) {
                            new ArrayList<String>());
        int temp = 0;
        for (Entry<Integer, ArrayList<String> >
                 e : map.entrySet()) {
            for (int i = 0; i < e.getValue().size(); i++) {
                str[temp] = e.getValue().get(i);
        return str;
    // Function to print the sorted array of string
    static void printArraystring(String str[], int n)
        for (int i = 0; i < n; i++)
            System.out.print(str[i] + " ");
    // Driver function
    public static void main(String args[])
        String[] arr = { "GeeksforGeeks",
                         "I", "from", "am" };
        int n = arr.length;
        // Function to perform sorting
        arr = sort(arr, n);
        // Calling the function to print result
        printArraystring(arr, n);


I am from GeeksforGeeks

My Personal Notes arrow_drop_up

Start Your Coding Journey Now!