Devi per forza usare una Map?
Non puoi costruirti una classe tua che implementa Comparable? In questo modo puoi tranquillamente utilizzare il metodo sort() della classe Arrays. Qualcosa del tipo:
codice:
public class MiaCoppia implements Comparable {
private String chiave;
private int valore;
public MiaCoppia(String chiave, int valore) {
this.chiave = chiave;
this.valore = valore;
}
public String getChiave() { return chiave; }
public int getValore() { return valore; }
public void compareTo(Object obj) {
MiaCoppia altro = (MiaCoppia) obj;
return valore - altro.getValore();
}
}
Quindi, costruisci un array di oggetto MiaCoppia prendendo i valore dalla tua Map:
codice:
MiaCoppia [] elenco = new MiaCoppia[ num_coppie_della_tua_map ];
elenco[j] = new MiaCoppia(chiave, valore);
Quindi le ordini utilizzando la classe Arrays:
codice:
Arrays.sort( elenco );
Ora le avrai ordinate in ordine crescente:
codice:
for(int j=0; j<elenco.length; j++) {
System.out.println("Ciave: " + elenco[j].getChiave() + " - valore: " + elenco[j].getValore());
}
Ciao. :Ciauz: