一、使用containsKey方法判断
判断Map是否包含特定的Key,可以使用Map自带的containsKey方法。该方法接受一个Key类型的参数,返回一个boolean类型的值。如果Map包含指定Key,则返回true;否则返回false。
// 创建一个Map Map<String, String> map = new HashMap<>(); // 向Map中添加Key-Value map.put("name", "Tom"); map.put("age", "18"); map.put("gender", "male"); // 判断Map是否包含指定Key if(map.containsKey("name")) { System.out.println("Map包含name这个Key"); } else { System.out.println("Map不包含name这个Key"); }
上述代码中,我们创建了一个Map,使用containsKey方法判断Map是否包含"name"这个Key。因为Map中包含"name"这个Key,所以会输出"Map包含name这个Key"。
二、使用containsValue方法判断
除了使用containsKey方法,还可以使用Map自带的containsValue方法判断Map中是否包含特定的Value。该方法接受一个Value类型的参数,返回一个boolean类型的值。如果Map中包含指定的Value,返回true;否则返回false。
//创建一个Map Map<String, String> map = new HashMap<>(); //向Map中添加Key-Value map.put("name", "Tom"); map.put("age", "18"); map.put("gender", "male"); //判断Map中是否包含指定的Value if(map.containsValue("Tom")) { System.out.println("Map中包含Tom这个Value"); } else { System.out.println("Map中不包含Tom这个Value"); }
上述代码中,我们创建了一个Map,使用containsValue方法判断Map中是否包含Value为"Tom"的值。因为Map中包含"Tom"这个Value,所以会输出"Map中包含Tom这个Value"。
三、使用entrySet方法判断
除了使用Map自带的containsKey和containsValue方法之外,还可以使用entrySet方法来遍历Map中的所有键值对。entrySet方法返回一个Set类型的集合,该集合中的每一个元素都是Map.Entry类型的实例,其中包含Map中每一个键值对的信息。下面的代码演示了如何使用entrySet方法来判断Map是否包含特定的Key。
//创建一个Map Map<String, String> map = new HashMap<>(); //向Map中添加Key-Value map.put("name", "Tom"); map.put("age", "18"); map.put("gender", "male"); //遍历Map中的所有键值对 for(Map.Entry<String, String> entry : map.entrySet()) { if(entry.getKey().equals("name")) { System.out.println("Map中包含name这个Key"); break; } }
上述代码中,我们使用entrySet方法遍历Map中的所有键值对,判断其中的每一个Key是否等于"name"。如果包含此Key,则输出"Map中包含name这个Key"。
四、使用Lambda表达式判断
Java 8引入了Lambda表达式,可以使用Lambda表达式来判断Map中是否包含特定的Key或Value。下面的代码演示了如何使用Lambda表达式来判断Map中是否包含Key为"name"的键值对:
//创建一个Map Map<String, String> map = new HashMap<>(); //向Map中添加Key-Value map.put("name", "Tom"); map.put("age", "18"); map.put("gender", "male"); //使用Lambda表达式判断Map中是否包含Key为"name"的键值对 boolean containsKey = map.entrySet().stream() .anyMatch(entry -> entry.getKey().equals("name")); if(containsKey) { System.out.println("Map中包含name这个Key"); } else { System.out.println("Map中不包含name这个Key"); }
上述代码中,我们使用Lambda表达式调用Stream对象的anyMatch方法,判断Map中是否包含Key为"name"的键值对。如果包含,则输出"Map中包含name这个Key"。