判断arraylist是否有重复
时间: 2023-08-18 13:43:59 浏览: 48
判断 `ArrayList` 是否有重复元素,可以使用以下两种方法:
方法一:利用 HashSet 的 add() 方法
HashSet 是一个不允许有重复元素的集合,因此,我们可以遍历 `ArrayList`,将每个元素添加到 HashSet 中,如果添加失败(即已经存在相同的元素),则说明 `ArrayList` 中有重复元素。
以下是 Java 代码示例:
```java
import java.util.ArrayList;
import java.util.HashSet;
public class Main {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(2); // 添加重复元素
HashSet<Integer> set = new HashSet<>();
boolean hasDuplicate = false;
for (int i = 0; i < list.size(); i++) {
if (!set.add(list.get(i))) {
hasDuplicate = true;
break;
}
}
if (hasDuplicate) {
System.out.println("ArrayList has duplicate elements.");
} else {
System.out.println("ArrayList does not have duplicate elements.");
}
}
}
```
方法二:利用 Java 8 的 Stream API
Java 8 引入的 Stream API 提供了便捷的数据处理方式,我们可以使用 Stream API 对 `ArrayList` 进行去重操作,再通过 `count()` 方法统计去重后的元素个数,如果去重后的元素个数小于原有的元素个数,则说明 `ArrayList` 中存在重复元素。
以下是 Java 代码示例:
```java
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(2); // 添加重复元素
boolean hasDuplicate = list.stream().distinct().count() != list.size();
if (hasDuplicate) {
System.out.println("ArrayList has duplicate elements.");
} else {
System.out.println("ArrayList does not have duplicate elements.");
}
}
}
```
这两种方法都可以判断 `ArrayList` 是否有重复元素,具体使用哪种方法取决于个人偏好和具体情况。