java 4个集合快速筛出启动重复项
时间: 2023-05-19 07:07:22 浏览: 66
可以使用 HashSet 来快速筛出重复项,具体实现如下:
```java
List<String> list = Arrays.asList("A", "B", "C", "A", "D", "E", "B");
Set<String> set = new HashSet<>();
List<String> duplicates = new ArrayList<>();
for (String str : list) {
if (!set.add(str)) {
duplicates.add(str);
}
}
System.out.println(duplicates); // 输出 ["A", "B"]
```
这里使用了 HashSet 来存储已经出现过的元素,如果 add() 方法返回 false,说明该元素已经存在于集合中,即为重复项。将重复项添加到一个新的列表中,最后输出即可。
相关问题
java 找出集合中的重复元素
要找出集合中的重复元素,可以使用 Java 中的 HashSet 和 ArrayList,具体步骤如下:
1. 新建一个 HashSet 对象,用于存放不重复的元素。
2. 新建一个 ArrayList 对象,用于存放重复的元素。
3. 遍历集合中的每一个元素,判断该元素是否已经存在于 HashSet 中。
4. 如果 HashSet 中已经存在该元素,则说明该元素是重复的,将其添加到 ArrayList 中。
5. 如果 HashSet 中不存在该元素,则将其添加到 HashSet 中。
6. 最后返回 ArrayList,即为集合中的重复元素。
以下是代码示例:
```java
import java.util.*;
public class FindDuplicateElements {
public static void main(String[] args) {
List<Integer> list = new ArrayList<>(Arrays.asList(1, 2, 3, 2, 4, 5, 3, 6));
List<Integer> duplicates = findDuplicates(list);
System.out.println("Duplicate elements: " + duplicates);
}
public static <T> List<T> findDuplicates(Collection<T> collection) {
Set<T> set = new HashSet<>();
List<T> duplicates = new ArrayList<>();
for (T item : collection) {
if (set.contains(item)) {
duplicates.add(item);
} else {
set.add(item);
}
}
return duplicates;
}
}
```
以上代码会输出以下结果:
```
Duplicate elements: [2, 3]
```
注意:以上代码仅适用于简单类型的集合,如果集合中的元素是自定义类型,需要重写该类型的 equals 和 hashCode 方法。
java set集合随机产生20个不重复的数
在Java中,你可以使用`HashSet`来生成20个不重复的随机整数。`HashSet`是一个不允许有重复元素的集合,这正好满足了我们需要不重复数字的要求。这里是一个简单的示例:
```java
import java.util.ArrayList;
import java.util.Random;
import java.util.HashSet;
public class Main {
public static void main(String[] args) {
int size = 20; // 需要生成的随机数的数量
HashSet<Integer> uniqueNumbers = new HashSet<>();
Random random = new Random(); // 创建一个随机数生成器
while(uniqueNumbers.size() < size) { // 当集合大小小于目标值时继续添加
uniqueNumbers.add(random.nextInt(100)); // 生成0到99之间的随机整数
}
ArrayList<Integer> list = new ArrayList<>(uniqueNumbers); // 将HashSet转换成ArrayList方便打印
for (Integer num : list) {
System.out.println(num);
}
//