ArrayList 去重 有多少方法
时间: 2024-05-22 11:15:44 浏览: 10
1. 使用Set:将ArrayList转换为Set,自动去重,再转回ArrayList。
2. 使用Stream API:使用distinct()方法对ArrayList进行去重。
3. 使用循环遍历:遍历ArrayList,将元素添加到另一个ArrayList中,如果元素已经存在,则不添加。
4. 使用HashSet:创建一个HashSet对象,遍历ArrayList,将元素添加到HashSet中,再将HashSet转换为ArrayList。
5. 使用LinkedHashSet:创建一个LinkedHashSet对象,遍历ArrayList,将元素添加到LinkedHashSet中,再将LinkedHashSet转换为ArrayList。
6. 使用TreeSet:创建一个TreeSet对象,遍历ArrayList,将元素添加到TreeSet中,再将TreeSet转换为ArrayList。
7. 使用Java 8的lambda表达式:使用Stream API的distinct()方法结合lambda表达式进行去重。
8. 使用Google Guava库:使用Lists.newArrayList()方法将ArrayList转换为Guava的ArrayListMultiset对象,再使用Multisets.distinctElements()方法进行去重。
9. 使用Apache Commons库:使用CollectionUtils类的removeDuplicates()方法进行去重。
相关问题
arraylist去重
可以使用HashSet或LinkedHashSet来对ArrayList进行去重操作。HashSet是无序的,而LinkedHashSet是有序的。下面是两种方法的示例代码:
方法一:使用HashSet去重
```java
List<Integer> arrayList = new ArrayList<Integer>(){{add(3);add(2);add(4);add(2);add(3);add(5);add(4);add(5);}};
ArrayList<Integer> uniqueList = new ArrayList<>(new HashSet<>(arrayList));
```
在这个方法中,我们首先创建一个HashSet对象,将ArrayList的元素添加到HashSet中,由于HashSet的特性是不允许重复元素的,所以重复的元素会被自动去除。然后我们再将HashSet转换回ArrayList,得到去重后的结果。
方法二:使用LinkedHashSet去重
```java
List<Integer> arrayList = new ArrayList<Integer>(){{add(3);add(2);add(4);add(2);add(3);add(5);add(4);add(5);}};
ArrayList<Integer> uniqueList = new ArrayList<>(new LinkedHashSet<>(arrayList));
```
在这个方法中,我们使用LinkedHashSet代替HashSet,LinkedHashSet会保持元素的插入顺序,所以去重后的结果会保持原来的顺序。
无论是使用HashSet还是LinkedHashSet,都可以实现对ArrayList的去重操作。具体选择哪种方法取决于你对元素顺序的要求。
#### 引用[.reference_title]
- *1* *3* [【Java】为ArrayList去重](https://blog.csdn.net/yongh701/article/details/43266695)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [ArrayList去重常用的四种方式及性能对比(JMH性能分析)](https://blog.csdn.net/yeahPeng11/article/details/122904072)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
ArrayList 去重
可以通过 HashSet 来进行 ArrayList 的去重操作。具体步骤如下:
1. 创建一个 HashSet 对象,并将 ArrayList 中的元素逐个添加到 HashSet 中。
2. 创建一个新的 ArrayList 对象,将 HashSet 中的元素逐个添加到新的 ArrayList 中。
下面是 Java 代码示例:
```java
import java.util.ArrayList;
import java.util.HashSet;
public class ArrayListRemoveDuplicate {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(2);
list.add(4);
list.add(5);
list.add(1);
HashSet<Integer> set = new HashSet<>(list);
ArrayList<Integer> newList = new ArrayList<>(set);
System.out.println("原始 ArrayList: " + list);
System.out.println("去重后的 ArrayList: " + newList);
}
}
```
输出结果为:
```
原始 ArrayList: [1, 2, 3, 2, 4, 5, 1]
去重后的 ArrayList: [1, 2, 3, 4, 5]
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)