# 如何在 Java 中比较两个`ArrayList`

> 原文： [https://beginnersbook.com/2013/12/how-to-compare-two-arraylist-in-java/](https://beginnersbook.com/2013/12/how-to-compare-two-arraylist-in-java/)

在本教程中，我们将学习如何比较两个`ArrayList`。我们将使用[`contains()`](https://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html#contains(java.lang.Object))方法来比较不同`ArrayList`的两个元素。

`public boolean contains(Object o)`
如果列表包含`Object`，则返回`true`，否则返回`false`。

#### 示例：

在这个例子中，我们有两个`String`类型的`ArrayList`，`al1`和`al2`。我们使用`contains()`方法比较了这些`ArrayList`，并将比较结果存储在第三个`ArrayList`（`al3`和`al4`）中。

```java
package beginnersbook.com;
import java.util.ArrayList;
public class Details
{
     public static void main(String [] args)
     {
          ArrayList<String> al1= new ArrayList<String>();
          al1.add("hi");
          al1.add("How are you");
          al1.add("Good Morning");
          al1.add("bye");
          al1.add("Good night");

          ArrayList<String> al2= new ArrayList<String>();
          al2.add("Howdy");
          al2.add("Good Evening");
          al2.add("bye");
          al2.add("Good night");

          //Storing the comparison output in ArrayList<String>
          ArrayList<String> al3= new ArrayList<String>();
          for (String temp : al1)
              al3.add(al2.contains(temp) ? "Yes" : "No");
          System.out.println(al3);

          //Storing the comparison output in ArrayList<Integer>
          ArrayList<Integer> al4= new ArrayList<Integer>();
          for (String temp2 : al1)
               al4.add(al2.contains(temp2) ? 1 : 0);
          System.out.println(al4);
     }
}
```

输出：

```java
[No, No, No, Yes, Yes]
[0, 0, 0, 1, 1]
```

上面代码中的逻辑是什么？
如果`al2`中存在`ArrayList al1`的第一个元素，那么`ArrayList``al3`将具有`"Yes"`而`al4`将具有 1 但是如果该元素不存在则将在`al3`中存储`"No"`，在`al4`中存储 0。