如果用Set ,倘若list里边的元素不是基本数据类型而是对象,
那么请覆写Object的boolean equals(Object obj) 和int hashCode()方法.
return new ArrayList(new HashSet(list));
方法一:循环元素删除
// 删除ArrayList中重复元素
|
1
2
3
4
5
6
7
8
9
10
|
public static
void removeDuplicate(List list) { for (
int i = 0 ; i < list.size() -
1 ; i ++ ) { for (
int j = list.size() - 1 ; j > i; j -- ) { if (list.get(j).equals(list.get(i))) { list.remove(j); } } } System.out.println(list);} |
方法二:通过HashSet剔除
// 删除ArrayList中重复元素
|
1
2
3
4
5
6
|
public static
void removeDuplicate(List list) { HashSet h =
new HashSet(list); list.clear(); list.addAll(h); System.out.println(list);} |
方法三: 删除ArrayList中重复元素,保持顺序
// 删除ArrayList中重复元素,保持顺序
|
1
2
3
4
5
6
7
8
9
10
11
12
|
public static
void removeDuplicateWithOrder(List list) { Set set=
new HashSet(); List newList =
new ArrayList(); for (Iterator iter = list.iterator(); iter.hasNext();) { Object
element = iter.next(); if
(set.add(element)) newList.add(element); } list.clear(); list.addAll(newList); System.out.println(" remove duplicate "
+ list);} |
如果用HashSet的话,如果是对象,则要将对象实现equals和hashCode方法
本文介绍三种去除ArrayList中重复元素的方法:使用循环逐个删除、利用HashSet特性移除重复项及保持原有顺序的同时去除重复项。文章针对对象类型的元素强调了正确实现equals与hashCode的重要性。
8373

被折叠的 条评论
为什么被折叠?



