1. ホーム
  2. java

[解決済み] Mapから複数のキーを効率的に削除するには?

2022-05-10 04:11:30

質問

私は Map<String,String> があり、多数のキーと値のペアがあります。その中から選択したキーを削除したい。 Map . 次のコードは、私がそれを達成するために何をしたかを示しています。

Set keySet = new HashSet(); //I added keys to keySet which I want to remove. 

次に.

Iterator entriesIterator = keySet.iterator();
while (entriesIterator.hasNext()) {
   map.remove( entriesIterator.next().toString());
} 

これは問題なく動作しています。より良い方法は何でしょうか?

どのように解決するのですか?

削除したい文字列がセットに含まれているとして、その文字列を削除するために keySet メソッド map.keySet().removeAll(keySet); .

keySet は、このマップに含まれるキーのSetビューを返します。セットはマップにバックアップされているので、マップへの変更はセットに反映され、その逆も同様です。

作り込まれた例です。

Map<String, String> map = new HashMap<>();
map.put("a", "");
map.put("b", "");
map.put("c", "");

Set<String> set = new HashSet<> ();
set.add("a");
set.add("b");

map.keySet().removeAll(set);

System.out.println(map); //only contains "c"