Dado un Hashtable , la tarea es ordenar este Hashtable. Hashtable es una estructura de datos que almacena datos en formato clave-valor. Los datos almacenados no están ordenados ni conservan el orden de inserción.
Ejemplo
Java
import java.io.*; import java.util.*; public class SortHashtable { public static void main(String[] args) { // create a hashtable Hashtable<Integer, String> ht = new Hashtable<Integer, String>(); // insert data into hashtable ht.put(2, "mango"); ht.put(3, "orange"); ht.put(1, "apple"); Set<Integer> keys = ht.keySet(); Iterator<Integer> itr = keys.iterator(); // traverse the TreeMap using iterator while (itr.hasNext()) { Integer i = itr.next(); System.out.println(i + " " + ht.get(i)); } } }
3 orange 2 mango 1 apple
Las asignaciones de Hashtable se pueden ordenar de las siguientes dos maneras:
- Uso de TreeMap
- Usando LinkedHashMap
Ejemplos:
Entrada: Hashtable: {2: «mango», 1: «manzana», 3: «naranja»}
Salida: 1 manzana
2 mangos
3 naranja
Entrada: Hashtable: {3: «tres», 2: «segundo», 1: «primero»}
Salida: 1 primero
2 segundos
3 tercio
Enfoque 1:
TreeMap almacena los datos en orden ordenado. Podemos usar el constructor TreeMap y convertir el objeto Hashtable en un objeto TreeMap. Ahora el objeto TreeMap resultante está ordenado.
Sintaxis:
TreeMap<K, V> tm = new TreeMap<K, V>(Map m);
Parámetros: m es el Hashtable en nuestro programa.
Ejemplo
Java
import java.io.*; import java.util.*; public class SortHashtable { public static void main(String[] args) { // create a hashtable Hashtable<Integer, String> ht = new Hashtable<Integer, String>(); // insert data into hashtable ht.put(2, "mango"); ht.put(3, "orange"); ht.put(1, "apple"); // create a TreeMap TreeMap<Integer, String> tm = new TreeMap<Integer, String>(ht); // create a keyset Set<Integer> keys = tm.keySet(); Iterator<Integer> itr = keys.iterator(); // traverse the TreeMap using iterator while (itr.hasNext()) { Integer i = itr.next(); System.out.println(i + " " + tm.get(i)); } } }
1 apple 2 mango 3 orange
Enfoque 2:
LinkedHashMap almacena los datos en el orden en que se insertan. Cuando lleguen los datos, insértelos en LinkedHashMap, que tiene una propiedad para conservar el orden de inserción.
Sintaxis:
LinkedHashMap<K, V> lhm = new LinkedHashMap<K, V>();
Ejemplo
Java
import java.io.*; import java.util.*; public class SortHashTable { public static void main(String[] args) { // create a LinkedHashMap LinkedHashMap<Integer, String> lhm = new LinkedHashMap<Integer, String>(); // insert data into LinkeHashMap lhm.put(2, "mango"); lhm.put(3, "orange"); lhm.put(1, "apple"); // prepare a keyset Set<Integer> keys = lhm.keySet(); Iterator<Integer> itr = keys.iterator(); // traverse the LinkedHashMap using iterator while (itr.hasNext()) { Integer i = itr.next(); System.out.println(i + " " + lhm.get(i)); } } }
2 mango 3 orange 1 apple
Publicación traducida automáticamente
Artículo escrito por swapnilbuchke y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA