2015-10-28 82 views
0

最大值如果我有一個TreeMap:的Java:在TreeMap中

TreeMap<String, Integer> map = new TreeMap<String, Integer>(); 

我想與最高值打印出String。我已經看到了有關排序的其他問題,但我想知道是否有任何順利的方法可以在地圖中獲得最大值?

回答

1

使用Java 8,獲得最高價值鑰匙的單線程是:

String s = map.entrySet() 
       .stream() 
       .max(Map.Entry::comparingByValue) 
       .map(Map.Entry::getKey) 
       .orElse(null); 

snull如果map是空的。

1

不,您需要切換您的密鑰和價值。這是排序的關鍵。

+0

我在想同樣的事情,但會樹可靠地排序原始包裝類? –

+2

是的,他們都正確實施'compareTo()'。 – Kayaman

+0

謝謝,很高興知道。 –

0
TreeMap<String, Integer> map = new TreeMap<String, Integer>(); 

變爲:

Map<Integer, Collection<String>> map = new TreeMap<>(); 

假設你想所有最高值的字符串,否則你只是想任何這樣的字符串,你可以使用此結構:

Map<Integer, String> map = new TreeMap<>();