Ok, ho capito lo scenario. Purtroppo nelle Api non ho trovato nulla che fa al caso tuo.
Se accetti un po' di ridondanza, posso proporti due soluzioni.
Soluzione 1) La Map diventa cosi' tipizzata
Map<String, Partecipante> dove String e' il nome e Partecipante e' un oggetto contenete nome e punteggio, quest'ultimo estende Comparable e nel metodo compareTo, richiama il metodo CompareTo del Integer della prima classe passandogli l'Integer della seconda.
Hai una mappa e quando ti serve la lista ordinata fai come ho scritto sopra (Ottieni la Collection e fai il sort()). L'inconveniente e' che computazionalmente devi riordinare ogni volta.
Soluzione 2) Ti scrivi una classe che estende una HashMap e all'inteno ci metti anche un TreeSet privato che conterra' i valori, sovrascrivi i costruttori e metodi clear, clone, put, putAll e remove in modo che chiamino il metodo della superclasse e facciano l'operazione anche sul TreeSet, infine sovrascrivi il metodo values() perche' ti restituisca il TreeSet(che dovrebbe essere ordinato). Hai una struttura dati in piu' che resta nascosta al livello superiore, i cui elementi puntano agli stessi oggetti puntati dai valori della HashMap. Nel codice poi usi la tua "OrderedByValuesHashMap" in maniera normale e quando ti serve la lista dei valori, chiami il metodo values().