Dada una array de strings, necesitamos ordenar la array en orden creciente de longitudes de string, utilizando Map Data Structure .
Ejemplos:
Entrada: str[] = {“GeeksforGeeeks”, “I”, “from”, “am”}
Salida: Soy de GeeksforGeeksEntrada: str[] = {“Tú”, “eres”, “hermosa”, “mirando”}
Salida: Te ves hermosa
Enfoque: el enfoque dado es para Java usando TreeMap
- Tome un TreeMap que contendrá la longitud de la string como clave y una ArrayList of Strings que tenga la misma longitud que la clave.
- Como sabemos que un TreeMap ya está ordenado, después de insertarlo en el TreeMap , recuperamos nuevamente los valores (las strings de la ArrayList ) uno por uno en la array de strings .
A continuación se muestra la implementación del enfoque anterior:
// 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); } }
Producción:
I am from GeeksforGeeks