您的当前位置:首页正文

JAVA数组去重常用方法

2023-08-19 来源:榕意旅游网
JAVA数组去重常用方法

在Java中,我们可以使用不同的方法来对数组进行去重操作。下面列出了一些常用的去重方法:

1. 使用Set(HashSet、TreeSet):Set是一种没有重复元素的集合,可以用来对数组进行去重。可以通过将数组元素放入Set中,然后再将Set转换回数组来实现去重。

```java

int[] arr = {1, 2, 3, 3, 4, 5, 5}; Set set = new HashSet<>(; for(int i : arr) set.add(i);

int[] result = new int[set.size(]; int index = 0; for(int i : set) result[index++] = i; ```

2. 使用List(LinkedList、ArrayList):可以使用List的contains方法来判断一个元素是否已经存在于列表中,然后通过判断来决定是否添加到新的列表中实现去重。

```java

int[] arr = {1, 2, 3, 3, 4, 5, 5}; List list = new ArrayList<>(; for(int i : arr) if(!list.contains(i)) list.add(i); }

int[] result = new int[list.size(]; for(int i = 0; i < list.size(; i++) result[i] = list.get(i); ```

3. 使用Arrays类的方法:

- 使用Arrays类中的sort方法对数组进行排序,然后通过比较相邻元素来判断是否重复。

```java

int[] arr = {1, 2, 3, 3, 4, 5, 5}; Arrays.sort(arr); int count = 0;

for(int i = 0; i < arr.length - 1; i++) if(arr[i] != arr[i + 1])

arr[count++] = arr[i]; }

arr[count++] = arr[arr.length - 1]; int[] result = Arrays.copyOf(arr, count); ```

- 使用Arrays类中的asList方法将数组转换为List,然后再将List转换回数组。

```java

int[] arr = {1, 2, 3, 3, 4, 5, 5};

List list = new ArrayList<>(Arrays.asList(arr)); int[] result = new int[list.size(]; for(int i = 0; i < list.size(; i++) result[i] = list.get(i); ```

4. 使用Stream API:可以使用Stream API提供的distinct方法对数组进行去重。

```java

int[] arr = {1, 2, 3, 3, 4, 5, 5};

int[] result = Arrays.stream(arr).distinct(.toArray(;

```

5.使用逐个比较:通过循环遍历数组中的每一个元素,并与之前的元素比较,如果不相等则添加到新的数组中。

```java

int[] arr = {1, 2, 3, 3, 4, 5, 5}; int[] result = new int[arr.length]; int count = 0;

for(int i = 0; i < arr.length; i++) boolean isDuplicate = false; for(int j = 0; j < count; j++) if(arr[i] == result[j]) isDuplicate = true; break; } }

if(!isDuplicate)

result[count++] = arr[i]; }

result = Arrays.copyOf(result, count);

```

上述方法中,使用Set和List的方法是最常用的,并且在性能方面较为优秀。Stream API提供了一种简洁的方式,但在处理大量数据时可能会有性能问题。比较相邻元素或逐个比较的方法相对复杂,并且在数据量大时性能较差。

总结:根据实际需求选择合适的去重方法,可以根据数据量、性能要求和代码简洁性来决定使用哪种方法。

因篇幅问题不能全部显示,请点此查看更多更全内容