您的位置:

Java实现判断Map是否包含中心Key

一、使用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"。