Java MapのcontainsKeyメソッドについての完全ガイド
JavaでMapを扱う際、特定のキーが存在するかどうかを確認するためにはcontainsKeyメソッドを使用します。
この記事では、そのcontainsKeyメソッドの使い方と実装例について詳しく解説します。
基本的な使い方
まず、Mapにキーと値を追加し、containsKeyメソッドを用いて特定のキーがMapに存在するか確認します。
ソースコード例
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
KindleUnlimited会員であれば、全ての本をご覧頂けます。 StreamAPIを理解すれば、Javaの世界が変わる 第1版
Integer型のキーを持つMapの例
次に、Integer型のキーを持つMapについて見てみましょう。
ソースコード例
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
自作クラスをキーとしたMapの例
それでは、独自に定義したクラスをキーとするMapの例について見てみましょう。
ソースコード例
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
ContainsKeyを使わない場合
ContainsKeyを使用しない場合はキーが存在しない場合はnullが出力されます。
ソースコード例
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
存在しないキーの取り扱い
では、存在しないキーを参照した時にnullではなく、デフォルトの値を返す方法はあるのでしょうか。
Java 8から、MapインターフェースにはgetOrDefaultメソッドが追加されました。
ソースコード例
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
if文でContainsKeyを使用する
containsKeyメソッドをif文で使ってみましょう!
これを使えば、キーが存在しない時に対処するロジックを書くことができます。
ソースコード例
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
まとめ
以上、JavaのMapのcontainsKeyメソッドについて解説しました。
JavaのMapでは、様々なタイプのキーを使用して値を管理することができます。そして、containsKeyメソッドを使用することで、指定したキーがMapに存在するかどうかを確認することができます。
最後まで読んで頂き、ありがとうございました。少しでもお役にたてたなら幸いです!
こちらもCHECK
-
【Java】HashMapの要素の追加、検索、修正、削除、ループ、 TreeMap, LinkedHashMapの違いを解説します。
1. JavaのMap型について JavaのMap型は、キーと値のペアでデータを管理するコレクション型の一つです。 キーと値のペアはエントリと呼ばれ、このエントリを保存し、キーを基にした検索などが可能 ...
続きを見る