Skip to content
Related Articles

Related Articles

Sort an array of strings according to string lengths using Map
  • Last Updated : 08 Aug, 2019

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

Examples:

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;
import java.io.*;
  
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++) {
  
            map.putIfAbsent(str[i].length(),
                            new ArrayList<String>());
            map.get(str[i].length()).add(str[i]);
        }
  
        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);
                temp++;
            }
        }
        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);
    }
}


Output:

I am from GeeksforGeeks

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up
Recommended Articles
Page :