Java中HashSet
时间: 2024-02-09 15:12:23 浏览: 94
在Java中,可以使用`HashSet`类来进行去重操作。`HashSet`是一个基于哈希表实现的集合类,它可以存储不同类型的元素,并且不允许重复元素。
如果想要对一个`List`进行去重操作,可以先将它转换为`HashSet`,然后再将`HashSet`转换回`List`。例如:
```java
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(2);
list.add(4);
list.add(3);
list.add(5);
HashSet<Integer> set = new HashSet<>(list);
List<Integer> newList = new ArrayList<>(set);
System.out.println(newList); // [1, 2, 3, 4, 5]
}
}
```
在上面的代码中,我们首先定义了一个包含重复元素的`List`。然后,我们使用`HashSet`的构造函数将`List`转换为`HashSet`,这样可以去掉重复元素。最后,我们使用`ArrayList`的构造函数将`HashSet`转换回`List`,得到一个去重后的新列表。
需要注意的是,`HashSet`是无序的,因此在将其转换回`List`时,元素的顺序可能会发生变化。如果需要保持元素的原始顺序,可以使用`LinkedHashSet`类,它也可以实现去重操作,而且会保持元素的顺序。例如:
```java
import java.util.ArrayList;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(2);
list.add(4);
list.add(3);
list.add(5);
HashSet<Integer> set = new LinkedHashSet<>(list);
List<Integer> newList = new ArrayList<>(set);
System.out.println(newList); // [1, 2, 3, 4, 5]
}
}
```
在上面的代码中,我们使用`LinkedHashSet`的构造函数将`List`转换为`LinkedHashSet`,这样可以保持元素的顺序。最后,我们使用`ArrayList`的构造函数将`LinkedHashSet`转换回`List`,得到一个去重后且保持元素顺序的新列表。
阅读全文