转自 http://hi.baidu.com/pj1990zp/item/0217520f5193528a3d42e251
如果用Set ,倘若list里边的元素不是基本数据类型而是对象,
如果用HashSet的话,如果是对象,则要将对象实现equals和hashCode方法
如果用Set
那么请覆写Object的boolean
return
方法一:循环元素删除
//
|
1
2
3
4
5
6
7
8
9
10
|
publicstatic void removeDuplicate(Listlist) { 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剔除
//
|
1
2
3
4
5
6
|
publicstatic void removeDuplicate(Listlist) { HashSeth =
new HashSet(list); list.clear(); list.addAll(h); System.out.println(list);} |
方法三:
//
|
1
2
3
4
5
6
7
8
9
10
11
12
|
publicstatic voidremoveDuplicateWithOrder Setset =
newHashSet(); ListnewList = new
ArrayList(); for(Iterator iter = list.iterator(); iter.hasNext();){ Objectelement = 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方法的重要性。
602

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



