Sono riuscito a implementare l'ordinamento facendo uso di un TreeSet unitamente al TreeMap nel seguente modo:
codice:
(*) TreeSet ts = new TreeSet(new Comparator() {
public int compare(Object obj, Object obj1) {
(*) int vcomp = ((Comparable) ((Map.Entry) obj1).getValue()).compareTo(((Map.Entry) obj).getValue());
(*) if (vcomp != 0) return vcomp;
else return ((Comparable) ((Map.Entry) obj1).getKey()).compareTo(((Map.Entry) obj).getKey());
}
});
(*) ts.addAll(elenco.entrySet());
System.out.println("+++ Lista dei collaboratori (NOME,OCCORRENZE) +++\r\n");
(*) for (Iterator i = ts.iterator(); i.hasNext();) {
(*) Map.Entry entry = (Map.Entry) i.next();
System.out.println(Acquisizione.estrapolaNome(Acquisizione.strutturaSchedaAttore(entry.getKey().toString())) + " - " + entry.getValue());
}
ma mi vengono segnalati alcuni warnings (dove ho messo l'asterisco) che comunque non hanno conseguenze sul funzionamento del programma e che in java 5 non vengono segnalate (io ho jre 1.6).
Nello specifico mi viene detto che i riferimenti al tipo generico TreeSet<E> devono essere parametrizzati e la stessa cosa mi viene detta per Map<K,V>.Entry<K,v>.
Ma cosa si intende per parametrizzare? Ho provato a modificare sostituendo TreeSet con TreeSet<Object> e Map.Entry con Map<String,Integer>.Entry<String,Integer> ma a questo punto da errore.