I wrote the java method to answer this question :Write a Program to sort String on their length in Java? Your method should accept  an array of String and return a sorted array based upon the length of StringSo my questions:1. Is my method efficient enough?2. Can it be improved somehow? private static String[] sort(String [] string) {    /*Local variables*/    Map<String, Integer> map=new LinkedHashMap<String, Integer>();    Map<String, Integer> mapCopy=new LinkedHashMap<String, Integer>();    int [] lengthsArray=new int[string.length];    String [] sortedStrings=new String[string.length];    int counter1=0;    int counter2=0;    /* Store all the pairs <key,value>     * i.e <string[i],string[i].length>     */    for(String s:string){        map.put(s, s.length());        lengthsArray[counter1]=s.length();//store all the lengths        counter1++;    }    mapCopy=new LinkedHashMap<String, Integer>(map);//make a copy of map    Arrays.sort(lengthsArray);//sort the array of lengths    /*     * Sort array according to the array of lengths     * by finding the matching value from the map      * then add it to the final string array,and then remove it from the map      */    for(int item:lengthsArray){        for(Map.Entry<String, Integer> e:map.entrySet()){            if(item==e.getValue()){                sortedStrings[counter2]=e.getKey();                counter2++;                map.remove(e.getKey());                break;            }           }    }    map=mapCopy;    System.out.println(map);//print map    return sortedStrings;}
Sorting the array of strings on their lengths in Java , Using Maps, ascending order....
java;strings;sorting