给你一个数组对其进行Java去重
时间: 2024-10-24 10:03:24 浏览: 19
在Java中,对于数组去重,主要有以下几种常见方法:
1. **创建新数组**:
使用循环和条件判断,检查每个元素是否已经存在于结果数组中。
```java
int[] array = {1, 2, 3, 2, 4, 3};
int[] distinctArray = new int[array.length];
int index = 0;
for (int i = 0; i < array.length; i++) {
if (Arrays.binarySearch(distinctArray, array[i]) == -1) {
distinctArray[index++] = array[i];
}
}
```
这里使用 `binarySearch` 函数检查元素是否存在,如果不存在则添加到新数组。
2. **使用HashSet**:
将数组转换为HashSet,由于HashSet不允许重复元素,所以这会自动去重。
```java
int[] array = {1, 2, 3, 2, 4, 3};
Set<Integer> set = new HashSet<>(Arrays.asList(array));
distinctArray = set.toArray(new Integer[0]);
```
3. **使用HashMap**:
将元素作为键,值可以随便设置为true或其他值,然后再取键集合。
```java
int[] array = {1, 2, 3, 2, 4, 3};
Map<Integer, Boolean> map = new HashMap<>();
for (int num : array) {
map.put(num, true);
}
distinctArray = map.keySet().toArray();
```
4. **使用TreeSet**:
TreeSet是一个有序的Set,它内部是基于红黑树实现,去重同时保证了元素的排序。
```java
int[] array = {1, 2, 3, 2, 4, 3};
TreeSet<Integer> treeSet = new TreeSet<>(Arrays.asList(array));
distinctArray = treeSet.toArray();
```
阅读全文