Allora che l'enumeration ti compaia in ordine disordinato è normale.
Perchp quando inserisci un valore in un'HashTable , la sua posizione viene calcolato mediante la funzione Hash che restituisce un valore compreso fra 0 e il numero max di elementi presenti nella HashTable.
Per cui anche se tu inserisci in ordine i valori , questi vengono inseriti in posizioni casuali.
Quando fai l'enumeration l'hashTable ti restituisce i valori prendendoli in ordine di posizone dall'HashTable, dalla posizione 0 alla posizione y
Una prima soluzione per ordinarli dopo che li hai messi nel Vector è quella di usare il metodo
sort(List list, Comparator c)
Dove oltre al vettore da ordinare devi passare l'istanza di una classe che estende l'interfaccia Comparator
che ha solo due metodi.
codice:
int compare(Object o1, Object o2)
Compares its two arguments for order.
boolean equals(Object obj)
Indicates whether some other object is "equal to" this Comparator.
devi ridefinire il metodo equals e compare
In pratica stabilisci tu come devono essere confrontati gli elementi del vettore.