java list找出重复元素
时间: 2023-08-16 13:10:11 浏览: 46
可以使用两个循环嵌套的方式来找出List中的重复元素,具体方法如下:
```java
List<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
list.add("a");
list.add("d");
list.add("c");
for(int i=0; i<list.size()-1; i++) {
for(int j=i+1; j<list.size(); j++) {
if(list.get(i).equals(list.get(j))) {
System.out.println("重复元素为:" + list.get(i));
}
}
}
```
上述代码中,我们使用了两个循环嵌套,外层循环遍历List中的元素,内层循环则从外层元素的下一个位置开始遍历,如果发现有两个元素相等,则输出重复元素。
相关问题
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 统计list有多少个重复的元素
要统计一个Java的List中重复元素的个数,可以使用HashMap来实现。HashMap是一种基于键值对的存储结构,通过键值对可以快速查找数据。
首先,需要遍历List中的所有元素,将元素作为HashMap中的Key,出现次数作为Value存储。遍历结束后,再次遍历HashMap,统计Value大于1的元素个数即为List中的重复元素个数。
以下是代码示例:
```java
import java.util.*;
public class CountDuplicateElements {
public static void main(String[] args) {
List<Integer> list = Arrays.asList(1, 2, 2, 3, 4, 5, 5, 5);
Map<Integer, Integer> map = new HashMap<>();
// 遍历List,将元素作为Key,出现次数作为Value存储到HashMap中
for (Integer element : list) {
if (map.containsKey(element)) {
map.put(element, map.get(element) + 1);
} else {
map.put(element, 1);
}
}
// 统计HashMap中Value大于1的元素个数
int duplicateCount = 0;
for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
if (entry.getValue() > 1) {
duplicateCount++;
}
}
System.out.println("List中重复元素的个数为:" + duplicateCount);
}
}
```
输出结果为:
```
List中重复元素的个数为:3
```
以上是一种基本且常见的用法,还有其他实现方式,可以根据具体需求选择合适的方法。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)