java中去重怎么编程

时间:2025-01-25 02:39:41 网络游戏

在Java中,可以使用以下几种方法进行去重:

使用HashSet

`HashSet` 是一个不允许重复元素的集合。将集合转换为 `HashSet` 后,重复的元素将被自动删除。这是一个简单且高效的方法。

```java

import java.util.Arrays;

import java.util.HashSet;

import java.util.Set;

public class RemoveDuplicates {

public static void main(String[] args) {

List list = Arrays.asList(1, 2, 3, 4, 4, 5, 6, 6, 7);

Set set = new HashSet<>(list);

System.out.println("去重后的集合: " + set);

}

}

```

使用LinkedHashSet

`LinkedHashSet` 是一个有序的集合,它按照元素插入的顺序维护元素的顺序。你可以将集合转换为 `LinkedHashSet` 以实现去重,同时保留元素的原始顺序。

```java

import java.util.Arrays;

import java.util.LinkedHashSet;

import java.util.Set;

public class RemoveDuplicates {

public static void main(String[] args) {

List list = Arrays.asList(1, 2, 3, 4, 4, 5, 6, 6, 7);

Set set = new LinkedHashSet<>(list);

System.out.println("去重后的集合: " + set);

}

}

```

使用Java 8的Stream API

如果你使用的是Java 8或更高版本,可以利用Stream API进行去重。这种方法简洁且易于理解。

```java

import java.util.Arrays;

import java.util.List;

import java.util.stream.Collectors;

public class Test3 {

public static void main(String[] args) {

int[] array = {1, 2, 2, 3, 3, 5, 4, 4, 8, 6, 18};

List distinctList = Arrays.stream(array).distinct().boxed().collect(Collectors.toList());

System.out.println(distinctList);

}

}

```

使用双重循环进行去重

对于某些特定情况,如需要保留原始顺序或处理复杂对象,可以使用双重循环进行去重。

```java

import java.util.ArrayList;

import java.util.List;

public class RemoveRepeat {

public List getList() {

List originalList = new ArrayList<>();

originalList.add(1);

originalList.add(3);

originalList.add(3);

originalList.add(5);

originalList.add(7);

originalList.add(7);

originalList.add(13);

List tempList = new ArrayList<>();

for (int object : originalList) {

if (!tempList.contains(object)) {

tempList.add(object);

}

}

return tempList;

}

public static void main(String[] args) {

RemoveRepeat test = new RemoveRepeat();

System.out.println(test.getList());

}

}

```

字符串去重

对于字符串去重,可以将字符串转换为字符数组,然后使用 `HashSet` 进行去重,最后将 `HashSet` 转换回字符串。

```java

public class StringDeduplication {

public static void main(String[] args) {

String inputString = "abacddde";

char[] charArray = inputString.toCharArray();

Set resultSet = new HashSet<>();

for (char c : charArray) {

resultSet.add(c);

}

String outputString = new String(resultSet.toArray());

System.out.println("去重后的字符串: " + outputString);

}

}

```

根据具体的需求和场景,可以选择合适的方法进行去重。