📜  如何检查 LinkedHashMap 是否包含Java中的值?(1)

📅  最后修改于: 2023-12-03 15:38:49.886000             🧑  作者: Mango

如何检查 LinkedHashMap 是否包含 Java 中的值?

LinkedHashMap 是 Java 中的一种有序的 Map 实现,可以保证插入和遍历时的顺序一致。在使用 LinkedHashMap 存储数据时,常常需要判断其中是否包含某个值。本文将介绍如何检查 LinkedHashMap 是否包含 Java 中的值。

方法一:使用 containsValue() 方法

LinkedHashMap 继承自 HashMap,因此可以使用 HashMap 中的方法。其中,containsValue() 方法可以用于判断 Map 中是否存在某个值。具体使用方法如下:

LinkedHashMap<String, Integer> map = new LinkedHashMap<>();
map.put("one", 1);
map.put("two", 2);
map.put("three", 3);

if (map.containsValue(2)) {
    System.out.println("Map contains value 2");
} else {
    System.out.println("Map does not contain value 2");
}

上述示例中,我们新建了一个 LinkedHashMap,并向其中存入了三个键值对。之后,使用 containsValue() 方法判断 map 中是否包含值为 2 的元素。如果包含,输出 "Map contains value 2";否则,输出 "Map does not contain value 2"。

方法二:使用 containsKey() 方法和 get() 方法

如果 LinkedHashMap 存储的是复合类型的数据,如对象或集合,使用 containsValue() 方法可能不太合适。此时,可以使用 containsKey() 方法和 get() 方法来判断是否存在某个值。如下:

class Person {
    private String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }
}

LinkedHashMap<String, Person> map = new LinkedHashMap<>();
map.put("Tom", new Person("Tom", 20));
map.put("Jim", new Person("Jim", 25));
map.put("Lucy", new Person("Lucy", 22));

if (map.containsKey("Tom") && map.get("Tom").getAge() == 20) {
    System.out.println("Map contains Person(name=Tom, age=20)");
} else {
    System.out.println("Map does not contain Person(name=Tom, age=20)");
}

在上述示例中,我们新建了一个 LinkedHashMap,其中存储了三个键值对,其中值为一个自定义的 Person 类对象。之后,我们使用 containsKey() 方法判断 map 中是否包含键为 "Tom" 的元素,并使用 get() 方法获取该元素。如果该元素存在,输出 "Map contains Person(name=Tom, age=20)";否则,输出 "Map does not contain Person(name=Tom, age=20)"。

方法三:使用 forEach() 方法

如果我们只需判断 LinkedHashMap 中是否存在某种特定的数据类型,可以使用 forEach() 方法。该方法会遍历 LinkedHashMap 中的所有元素,对其中的每一个元素执行指定的操作。如下:

LinkedHashMap<String, Integer> map = new LinkedHashMap<>();
map.put("one", 1);
map.put("two", 2);
map.put("three", 3);

boolean containsEven = false;
for (Integer value : map.values()) {
    if (value % 2 == 0) {
        containsEven = true;
        break;
    }
}

if (containsEven) {
    System.out.println("Map contains an even number");
} else {
    System.out.println("Map does not contain an even number");
}

在上述示例中,我们新建了一个 LinkedHashMap,并向其中存入了三个键值对。之后,我们使用 forEach() 方法遍历 map 中的所有元素,并判断是否存在偶数值。如果存在,输出 "Map contains an even number";否则,输出 "Map does not contain an even number"。

总结

本文介绍了三种实现方法,用于判断 LinkedHashMap 中是否包含 Java 中的值。这些方法包括使用 containsValue() 方法、containsKey() 方法和 get() 方法、以及 forEach() 方法。程序员在实践中可以根据具体需求选择合适的方法。