如果用Set ,倘若list里边的元素不是基本数据类型而是对象,
那么请覆写Object的boolean equals(Object obj) 和int hashCode()方法.
方法一:循环元素删除
// 删除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方法
java去除List中重复的元素
如果用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);
}
|