Witam, mam mały problemik z zadaniem http://pl.spoj.com/problems/NAMES/ . Mój problem polega na tym, że nie wiem jak posortować Map'e po wartościach(Integer) od najwiekszego do najmniejszego i jeśli wartości są takie same dla różnych kluczy(String) to wtedy posortować dla tych samych wartości według klucza.
Mój kod:
String[] rekordy = new String[7]; // probna lista do sprawdzenia
rekordy[0]="1. KowalSki JaCEk";
rekordy[1]="2. mazurkiewicz pIoTR";
rekordy[2]="3. prokoP ANna";
rekordy[3]="4. MisioL annA";
rekordy[4]="5. BerezOwSki jaCEK";
rekordy[5]="6. pietraS ANNA";
rekordy[6]="7. WILkowsKA aneta";
Map<String,Integer> wyniki = new LinkedHashMap<>();
// Imię to klucz, a wartość ilość jego powtórzeń w tablicy rekordy
// Jeśli mapa nie posiada danego klucza to dodaje go key = [imie] value=1 (domyślnie)
// Jeśli imię(klucz) już istnieje to inkrementuj wartość dla tego klucza o jeden
for (int i = 0; i < rekordy.length; i++) {
rekordy[i]=rekordy[i].replaceAll("[A-z,1-9,.]*[ ]","").toUpperCase();
if(!wyniki.containsKey(rekordy[i]))
{
wyniki.put(rekordy[i],1);
}else
{
wyniki.put(rekordy[i],wyniki.get(rekordy[i]).intValue()+1);
}
}
//TODO: Posortować map'e