java场景题:声明一个list,里面有若干个重复元素,找出重复的元素,并且记录重复次数
时间: 2023-07-15 09:10:58 浏览: 36
可以使用HashMap来实现,遍历List中的每个元素,将元素作为key存入HashMap中,如果该元素已经存在于HashMap中,则将对应的value加1。最后遍历HashMap,输出重复元素和重复次数即可。
代码示例:
```
List<Integer> list = new ArrayList<Integer>();
// 假设List中已经有若干个重复元素
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
for (Integer num : list) {
if (map.containsKey(num)) {
map.put(num, map.get(num) + 1);
} else {
map.put(num, 1);
}
}
for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
if (entry.getValue() > 1) {
System.out.println("重复元素:" + entry.getKey() + ",重复次数:" + entry.getValue());
}
}
```
相关问题
java list找出重复元素
找出 Java List 中的重复元素,可以使用 HashSet 来辅助实现。HashSet 是一种基于哈希算法实现的无序集合,它可以快速判断一个元素是否存在于集合中。具体实现步骤如下:
1. 声明一个 HashSet 对象,用于存放已经出现过的元素。
2. 遍历 List 中的每个元素,判断该元素是否已经存在于 HashSet 中,如果存在,则说明该元素是重复的,将它添加到一个新的 List 中。
3. 如果该元素不存在于 HashSet 中,则将它添加到 HashSet 中。
以下是示例代码:
```java
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(2);
list.add(4);
list.add(3);
HashSet<Integer> set = new HashSet<>();
List<Integer> result = new ArrayList<>();
for (Integer item : list) {
if (set.contains(item)) {
result.add(item);
} else {
set.add(item);
}
}
System.out.println("List 中的重复元素为:" + result);
}
}
```
在上面的示例代码中,我们声明了一个 List 对象 list,其中包含了一些重复元素。然后,我们声明了一个 HashSet 对象 set,用于存放已经出现过的元素,并且声明了一个新的 List 对象 result,用于存放重复的元素。在遍历 list 中的每个元素时,我们判断该元素是否已经存在于 set 中,如果是,则将它添加到 result 中,否则将它添加到 set 中。最后,我们输出了所有的重复元素。
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
```
以上是一种基本且常见的用法,还有其他实现方式,可以根据具体需求选择合适的方法。