2017-06-10 3 views
1

値が指定された範囲内にあるエントリを効率的にHashMapから削除する方法はありますか?私は、値は0から200値が指定された範囲にあるHashMapからエントリを効率的に削除する

の間にあるすべてのエントリを削除したいと思い、私はHashMapの

private Map<String, Long> accessTimes = new HashMap<>(); 

を以下している

はそれらを介してHashMapの繰り返し処理なしで、それは可能ですか?何かヒントありがとうございます。

+0

ここでは「TreeMap」を使用できます。指定された範囲内の値を削除するメソッドはありません。これでも反復する必要がありますが、 'HashMap'より効率的に反復処理を行うことができます。 'TreeMap#ceilingKey()'を使って指定された間隔でキーを見つけて削除することができます。 –

答えて

3

いいえマップ内のすべてのキーを繰り返し処理することはできません。

ハッシュマップでは、エントリはエントリのキーのハッシュコードに基づいてバケットに格納されます。したがって、エントリがソートされないため、すべての要素を参照して削除する必要があるかどうかを判断する必要があります。

enter image description here

関連する問題