2017-10-03 9 views
0
Map<String, Integer> map = new HashMap<String, Integer>; 

... 

Map<String, Integer> sortedMap = sortByValue(map); 
Integer max = sortedMap.keySet().iterator().next(); 

私が必要とするのは、ソート後の最大要素であるマップの最初の要素をフェッチすることです。これはマップの最初の要素へのアクセスを保証しますか?

編集:ソートマップは次のようになります。順序の概念を持っているいくつかのMap実装がありますが

John->100 
    Mary->50 
    Mike-> 2 
    ... 
+2

どのような魔法の 'sortByValue()'がしますか? –

+0

試しましたか? –

+0

'Sets.newTreeSet(sortedMap.values())。iterator()。next()'はできませんか? 'sortedMap'機能については、入力とは異なるマップである可能性があるため、わかりません。 –

答えて

0

、これは地図契約の一部ではありません。特にHashMapは、エントリの順序を保証するものではありません。

ここで行ったことはsortByValueになり、返された地図が何らかの順序で残っているかどうかによって異なります。

+0

私のソートされたマップは実際にLinkedHashMapを返します。混乱させて申し訳ありません。 – marlon

関連する問題