Java 8 判断 List 中是否包含某对象 没有则添加

在Java 8 中,判断 List 中是否包含某个对象并添加,是一个常见的需求。本文将向您介绍如何使用Java 8的新特性来实现这个功能。

需求描述

假设我们有一个 List,我们需要判断其中是否包含某个对象。如果该对象不存在于 List 中,我们需要将其添加到 List 中。

传统方式

在 Java 8 之前,我们可以使用传统的方式来实现这个需求。具体步骤如下:

  1. 遍历 List,判断是否存在与目标对象相等的元素。
  2. 如果存在,返回 true。
  3. 如果不存在,将目标对象添加到 List 中,并返回 false。

以下是一个示例代码:

import java.util.ArrayList;
import java.util.List;

public class ListContainsExample {

    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("Apple");
        list.add("Banana");
        list.add("Orange");

        String target = "Grape";

        boolean contains = false;
        for (String item : list) {
            if (item.equals(target)) {
                contains = true;
                break;
            }
        }

        if (!contains) {
            list.add(target);
        }

        System.out.println(list);
    }
}

以上代码首先创建一个 List,并添加一些元素。然后,我们遍历 List 来判断是否存在目标对象。如果不存在,我们将目标对象添加到 List 中,最后输出结果。

Java 8 方式

在Java 8 中,我们可以使用 Stream API 来更简洁地实现这个功能。使用 Stream 的 anyMatch 方法可以判断 List 中是否存在满足条件的元素。使用 filter 方法可以过滤出与目标对象相等的元素。

以下是使用 Java 8 的示例代码:

import java.util.ArrayList;
import java.util.List;

public class ListContainsExampleJava8 {

    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("Apple");
        list.add("Banana");
        list.add("Orange");

        String target = "Grape";

        boolean contains = list.stream()
                .anyMatch(item -> item.equals(target));

        if (!contains) {
            list.add(target);
        }

        System.out.println(list);
    }
}

上述代码中,我们使用 Stream 的 anyMatch 方法来判断 List 中是否存在与目标对象相等的元素,并将结果赋值给 contains 变量。如果不存在,则将目标对象添加到 List 中,并输出最终的结果。

总结

Java 8 引入的 Stream API 提供了更简洁、更优雅的方式来处理集合数据。使用 Stream 的 anyMatch 方法可以方便地判断 List 中是否存在某个元素。通过结合 filter 方法,我们可以更加灵活地处理集合数据。

以上就是使用 Java 8 判断 List 中是否包含某个对象并添加的示例。希望本文对您有所帮助!


参考文献

  • [Java 8 Stream API Tutorial](

实体关系图

下面是本文中的实体关系图,使用 Mermaid 语法进行标识:

erDiagram
    List ||--o{ Object : contains

以上是 List 和 Object 之间的关系图,表示 List 中包含 Object 对象。

引用形式的描述信息

以下是本文中的引用形式的描述信息:

Java 8 引入的 Stream API 提供了更简洁、更优雅的方式来处理集合数据。使用 Stream 的 anyMatch 方法可以方便地判断 List 中是否存在某个元素。通过结合 filter 方法,我们可以更加灵活地处理集合数据。