Javaのマップからキーを削除します
この投稿では、Javaでマップからキーを削除する方法について説明します。
1.使用する remove()
方法
標準的な解決策は、Javaのマップからキーのマッピングを削除することです remove()
の方法 Map
インターフェース。いつ remove()
キーに対してメソッドが呼び出されます key
、キーからのマッピング k
貴ぶ v
削除された Objects.equals(key, k)
保持します。この同等性は、この投稿の他の例にも当てはまります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
import java.util.HashMap; import java.util.Map; public class Main { public static void main(String[] args) { Map<String, Integer> map = new HashMap<>(); map.put("C++", 1980); map.put("Java", 1995); map.put("Ruby", 1995); map.remove("C++"); System.out.println(map); } } |
出力:
{Java=1995, Ruby=1995}
また、 remove()
によって返されるキーのセットビューのメソッド keySet()
方法。これは、返されたセットがマップに裏打ちされており、セットに加えられた変更がマップにも反映されるため、機能します。これは、 entrySet()
メソッドも。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
import java.util.HashMap; import java.util.Map; public class Main { public static void main(String[] args) { Map<String, Integer> map = new HashMap<>(); map.put("C++", 1980); map.put("Java", 1995); map.put("Ruby", 1995); map.keySet().remove("C++"); System.out.println(map); } } |
出力:
{Java=1995, Ruby=1995}
2.使用する removeIf()
方法
Java 8以降、 removeIf()
指定された述語を満たすすべてのエントリをマップから削除するメソッド。次のコードは、その使用法を示しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
import java.util.HashMap; import java.util.Map; public class Main { public static void main(String[] args) { Map<String, Integer> map = new HashMap<>(); map.put("C++", 1980); map.put("Java", 1995); map.put("Ruby", 1995); map.entrySet().removeIf(entry -> entry.getKey().equals("C++")); System.out.println(map); } } |
出力:
{Java=1995, Ruby=1995}
これは、を使用した同等の例です keySet()
方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
import java.util.HashMap; import java.util.Map; public class Main { public static void main(String[] args) { Map<String, Integer> map = new HashMap<>(); map.put("C++", 1980); map.put("Java", 1995); map.put("Ruby", 1995); map.keySet().removeIf(key -> key.equals("C++")); System.out.println(map); } } |
出力:
{Java=1995, Ruby=1995}
3.使用する removeAll()
方法
Java 8以降でのもっともらしい方法は、 removeAll()
メソッド。指定されたキーに関連付けられているすべてのマッピングを削除します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
import java.util.Arrays; import java.util.HashMap; import java.util.Map; public class Main { public static void main(String[] args) { Map<String, Integer> map = new HashMap<>(); map.put("C++", 1980); map.put("Java", 1995); map.put("Ruby", 1995); map.keySet().removeAll(Arrays.asList("C++", "Java")); System.out.println(map); } } |
出力:
{Ruby=1995}
これで、Javaのマップからキーを削除することができます。