JAVA数组去重实用方法
在Java中,数组去重是一个常见的需求。当我们得到一个数组后,有时候需要对数组进行去重操作,以便后续的处理。接下来,我将介绍一些Java中常用的数组去重实用方法。
1. 使用Set集合
Set是Java中的一个接口,它的实现类包括HashSet、LinkedHashSet和TreeSet。Set集合的特点是不允许重复元素,因此可以通过将数组转化为Set集合来去重。
```
int[] arr = {1, 2, 3, 3, 4, 5, 5};
Set<Integer> set = new HashSet<>(;
for(int i : arr)
set.add(i);
Integer[] result = Array(new Integer[0]);
```
这样,变量result就是去重后的数组。
2. 使用List集合
List是Java中的一个接口,它的实现类包括ArrayList和LinkedList。与Set不同,List允许重复元素,但我们可以利用List的contains方法来判断元素是否已存在,从而实现数组去重。
```
int[] arr = {1, 2, 3, 3, 4, 5, 5};
List<Integer> list = new ArrayList<>(;
for(int i : arr)
if(!ains(i))
list.add(i);
}
Integer[] result = Array(new Integer[0]);
```
这样,变量result同样是去重后的数组。
3. 使用Java 8的Stream API
Java 8引入了新的Stream API,可以用来简化集合的操作。通过转化数组为Stream对象,并利用distinct方法进行去重,再将Stream转化为数组,可以很方便地实现数组去重。
```
int[] arr = {1, 2, 3, 3, 4, 5, 5};
int[] result = Arrays.stream(arr).distinct(.toArray(;
```
这样,变量result就是去重后的数组。
4.使用逐个比较法
这种方法适用于已经排序的数组。通过比较每个元素和其后一个元素的值是否相等,如果相等则移除后一个元素,从而实现数组去重。
```
int[] arr = {1, 2, 3, 3, 4, 5, 5};
int length = arr.length;
for(int i = 0; i < length - 1; i++)
if(arr[i] == arr[i + 1])
for(int j = i + 1; j < length - 1; j++)
arr[j] = arr[j + 1];
}
length--;
i--;
}
int[] result = pyOf(arr, length);
```
java stream这样,变量result同样是去重后的数组。
5.使用洗牌法
这种方法首先将数组进行排序,然后通过比较相邻元素的值来移除重复元素。
```
int[] arr = {1, 2, 3, 3, 4, 5, 5};
Arrays.sort(arr);
int length = arr.length;
for(int i = 0; i < length - 1; i++)
if(arr[i] == arr[i + 1])
arr[i] = Integer.MAX_VALUE;
length--;
}
Arrays.sort(arr);
int[] result = pyOf(arr, length);
```
这样,变量result也是去重后的数组。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。