用Java写一个删除无序数组中重复的数值元素,是每个元素最多只出现两次,并将剩余的元素保存在列表集合并返回的代码
时间: 2024-02-09 08:10:57 浏览: 83
对于无序数组,我们可以使用哈希表来统计每个元素出现的次数,然后依次将不重复的元素保存到结果集合中。具体代码如下:
```java
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class RemoveDuplicates {
public static List<Integer> removeDuplicates(int[] nums) {
List<Integer> result = new ArrayList<>();
Map<Integer, Integer> countMap = new HashMap<>();
for (int num : nums) {
countMap.put(num, countMap.getOrDefault(num, 0) + 1);
}
for (int num : nums) {
if (countMap.get(num) > 0) {
result.add(num);
countMap.put(num, countMap.get(num) - 1);
}
}
return result;
}
public static void main(String[] args) {
int[] nums = {3, 1, 2, 3, 2, 1};
List<Integer> result = removeDuplicates(nums);
System.out.println(result);
}
}
```
在这个代码中,我们首先用哈希表 `countMap` 统计数组中每个元素出现的次数。然后再次遍历数组,对于每个元素,我们判断它是否是重复的,如果不是,则将它保存到结果集合中,并将哈希表中对应的计数值减一。
最后返回结果集合即可。
阅读全文
相关推荐















