Sortowanie TreeMapy po wartości (nie kluczu)

0

Witam
Piszę metodę sortującą mi TreeMapę po wartości (domyślnie jest sortowana po kluczu). Najpierw kopiuję wszystkie wartości do vector'a, tam sortuję i chciałem teraz na podstawie znalezionego klucza z powrotem umieścić je w odpowiedniej kolejności do TreeMapy.

public TreeMap<String, Long> sortByValues(final Map<String, Long> map) {
    	
    	TreeMap<String, Long> sorted = new TreeMap<String, Long>();
    	Vector<Long> step = new Vector<Long>();
    	
    	for (Map.Entry<String, Long> entry : map.entrySet())
    		step.add(entry.getValue());
    	
    	Collections.sort(step);
    	
    	Iterator iterator;
    	iterator = step.iterator();
    	
    	while(iterator.hasNext()) {
    		String key;
    		//key = map.getKey;  <-------------tu nie wiem
    		sorted.put(key, (Long)iterator.next());
    	}
    	
    	return sorted;
    }

Nie wiem jak dla konkretnej wartości zwrócić klucz (zaznaczyłem moment w kodzie).
Proszę o pomoc.
Pozdr.

0

Przeładuj Comparator w TreeMap zamiast bawić się w takie coś :)
Pierwsze lepsze: http://stackoverflow.com/questions/2864840/treemap-sort-by-value

1 użytkowników online, w tym zalogowanych: 0, gości: 1