キーに文字列、値に整数を含むJavaマップがあります。5より大きい値を持たない特定のエントリ(キー/値)をこのマップから削除したいのですが、これを行う方法を誰かが教えてくれますか?
ありがとう!
キーに文字列、値に整数を含むJavaマップがあります。5より大きい値を持たない特定のエントリ(キー/値)をこのマップから削除したいのですが、これを行う方法を誰かが教えてくれますか?
ありがとう!
通常のマップしかない場合 (つまり、逆マッピングを実装する追加のデータ構造がない場合)、最適なオプションは、値セットを繰り返し、各値をテストIterator.remove()
し、関連する値を削除するために使用することです。
二次データ構造がある場合は、それを使用して削除するエントリを特定できる場合があります。ただし、「コスト」は、そのようなデータ構造を表すにはスペースが必要であり、更新に時間がかかることです...そしてコードはより複雑になります。
Ok!私は次のように仕事をしました。スティーブン C に感謝:
Iterator<Map.Entry<String,Integer>> iter = TestMap.entrySet().iterator();
while (iter.hasNext()) {
Map.Entry<String,Integer> entry = iter.next();
if(entry.getValue() <= 5){
iter.remove();
}
}