Java MapのcontainsKeyメソッドについての完全ガイド
JavaでMapを扱う際、特定のキーが存在するかどうかを確認するためにはcontainsKeyメソッドを使用します。
この記事では、そのcontainsKeyメソッドの使い方と実装例について詳しく解説します。
基本的な使い方
まず、Mapにキーと値を追加し、containsKeyメソッドを用いて特定のキーがMapに存在するか確認します。
![](https://csharpprogram.com/wp-content/uploads/2021/04/無題825_20230315133655-300x300.png)
ソースコード例
1 2 3 4 5 6 7 8 9 10 11 12 |
import java.util.*; public class Program { public static void main(String[] args) { Map<String, Integer> map = new HashMap<String, Integer>(); map.put("apple", 1); map.put("banana", 2); System.out.println(map.containsKey("apple")); // true System.out.println(map.containsKey("grape")); // false } } |
出力結果
true
false
![](https://csharpprogram.com/wp-content/uploads/2021/04/無題825_20230315133712-300x300.png)
KindleUnlimited会員であれば、全ての本をご覧頂けます。 StreamAPIを理解すれば、Javaの世界が変わる 第1版
![](https://csharpprogram.com/wp-content/uploads/2023/03/StreamAPI第1版-188x300.jpg)
Integer型のキーを持つMapの例
次に、Integer型のキーを持つMapについて見てみましょう。
![](https://csharpprogram.com/wp-content/uploads/2021/04/無題824_20230225215240-300x300.png)
ソースコード例
1 2 3 4 5 6 7 8 9 10 11 12 |
import java.util.*; public class Program { public static void main(String[] args) { Map<Integer, String> map = new HashMap<Integer, String>(); map.put(1, "apple"); map.put(2, "banana"); System.out.println(map.containsKey(1)); // true System.out.println(map.containsKey(3)); // false } } |
出力結果
true
false
![](https://csharpprogram.com/wp-content/uploads/2021/04/無題824_20230225215240-300x300.png)
自作クラスをキーとしたMapの例
それでは、独自に定義したクラスをキーとするMapの例について見てみましょう。
![](https://csharpprogram.com/wp-content/uploads/2021/04/無題825_20230315133655-300x300.png)
ソースコード例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
import java.util.*; class Key { private int id; Key(int id) { this.id = id; } @Override public int hashCode() { return id; } @Override public boolean equals(Object obj) { if (obj instanceof Key) { Key key = (Key) obj; return this.id == key.id; } return false; } } public class Program { public static void main(String[] args) { Map<Key, String> map = new HashMap<Key, String>(); map.put(new Key(1), "apple"); map.put(new Key(2), "banana"); System.out.println(map.containsKey(new Key(1))); // true System.out.println(map.containsKey(new Key(3))); // false } } |
出力結果
true
false
![](https://csharpprogram.com/wp-content/uploads/2021/04/無題825_20230315133712-300x300.png)
ContainsKeyを使わない場合
ContainsKeyを使用しない場合はキーが存在しない場合はnullが出力されます。
![](https://csharpprogram.com/wp-content/uploads/2021/04/無題825_20230315133655-300x300.png)
ソースコード例
1 2 3 4 5 6 7 8 9 10 11 12 |
import java.util.Map; import java.util.HashMap; public class Program { public static void main(String[] args) { Map<String, String> map = new HashMap<>(); map.put("Apple", "Fruit"); System.out.println(map.get("Apple")); System.out.println(map.get("Banana")); } } |
出力結果
Fruit
null
![](https://csharpprogram.com/wp-content/uploads/2021/04/無題825_20230315133712-300x300.png)
存在しないキーの取り扱い
では、存在しないキーを参照した時にnullではなく、デフォルトの値を返す方法はあるのでしょうか。
Java 8から、MapインターフェースにはgetOrDefaultメソッドが追加されました。
![](https://csharpprogram.com/wp-content/uploads/2021/04/無題824_20230225215240-300x300.png)
ソースコード例
1 2 3 4 5 6 7 8 9 10 11 12 |
import java.util.Map; import java.util.HashMap; public class Program { public static void main(String[] args) { Map<String, String> map = new HashMap<>(); map.put("Apple", "Fruit"); System.out.println(map.getOrDefault("Apple", "Unknown")); System.out.println(map.getOrDefault("Banana", "Unknown")); } } |
出力結果
Fruit
Unknown
![](https://csharpprogram.com/wp-content/uploads/2021/04/無題825_20230315133637-300x300.png)
if文でContainsKeyを使用する
containsKeyメソッドをif文で使ってみましょう!
これを使えば、キーが存在しない時に対処するロジックを書くことができます。
![](https://csharpprogram.com/wp-content/uploads/2021/04/無題825_20230315133655-300x300.png)
ソースコード例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
import java.util.Map; import java.util.HashMap; public class Program { public static void main(String[] args) { Map<String, String> map = new HashMap<>(); map.put("Apple", "Fruit"); if (map.containsKey("Apple")) { System.out.println(map.get("Apple")); } else { System.out.println("Unknown"); } if (map.containsKey("Banana")) { System.out.println(map.get("Banana")); } else { System.out.println("Unknown"); } } } |
出力結果
Fruit
Unknown
![](https://csharpprogram.com/wp-content/uploads/2021/04/無題824_20230225215240-300x300.png)
まとめ
以上、JavaのMapのcontainsKeyメソッドについて解説しました。
JavaのMapでは、様々なタイプのキーを使用して値を管理することができます。そして、containsKeyメソッドを使用することで、指定したキーがMapに存在するかどうかを確認することができます。
最後まで読んで頂き、ありがとうございました。少しでもお役にたてたなら幸いです!
![](https://csharpprogram.com/wp-content/uploads/2021/04/無題825_20230315133637-300x300.png)
こちらもCHECK
-
-
【Java】HashMapの要素の追加、検索、修正、削除、ループ、 TreeMap, LinkedHashMapの違いを解説します。
1. JavaのMap型について JavaのMap型は、キーと値のペアでデータを管理するコレクション型の一つです。 キーと値のペアはエントリと呼ばれ、このエントリを保存し、キーを基にした検索などが可能 ...
続きを見る