Skip to content


Ordenar Hashtable en Java

Nos puede resultar bastante útil obtener de forma ordenada alfabéticamente los datos que hemos introducido en una Hashtable, para ello este método al que le pasamos el objeto Hashtable, nos devolverá un array de Strings con las keys ordenadas.

[code lang=»java»]
private String[] keysOrdenadas(Hashtable ht) {
Object[] valores = ht.keySet().toArray();
ArrayList lista = new ArrayList();

for (int i = 0; i < valores.length; i++) {
lista.add((String) valores[i]);
}
Collections.sort(lista);

Object[] valores_ordenados = lista.toArray();

String[] indice = new String[valores_ordenados.length];
for (int i = 0; i < valores_ordenados.length; i++) {
indice[i] = (String) valores_ordenados[i];
}

return indice;
}
[/code]

Posted in Java.

Tagged with , , .


4 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

  1. Ignacio Sánchez says

    Muy buen aporte Coler.

    Sólo una preguntilla. El tipo de algoritmo que has puesto, ¿es un burbuja, quicksort, mergesort, …. cosecha propia?

    Un saludo

  2. Xavier says

    Que tal gracias por el aporte, el ordenamiento realiza mediante esta linea:
    Collections.sort(lista);
    el ordenamiento de collections es una variacion del MergeSort puedes ver mas informacion en:
    http://docs.oracle.com/javase/1.4.2/docs/api/java/util/Collections.html

  3. Vanesa says

    Te propongo una mejora. Para pasar las claves al ArrayList te llegaría con esta línea:
    ArrayList lista= new ArrayList(ht.keySet());
    Un saludo

  4. Kennysud says

    Y ¿cómo ordenamos alfabéticamente los elementos del hashtable sobre el mismo hashtable?