1. 使用java8自带方法去重
List
<User> lists
= 从某处得来的集合
;
lists
= lists
.stream().collect(Collectors
.collectingAndThen(Collectors
.toCollection(() -> new TreeSet<>(Comparator
.comparing(User
::getXxx
))), ArrayList
::new));
这样得到的集合lists,就是去重过后的集合
2.还有一种方法,但是该方法有时返回的集合正确,有时不正确。(慎重使用!)
private static List
<User> getDistinctInfo(List
<User> list
) {
Set
<User> set
= new TreeSet<>(new Comparator<User>() {
@Override
public int compare(User o1
, User o2
) {
int compareToResult
= 1;
if(StringUtils
.equals(o1
.getXxx().toString(), o2
.getXxx().toString())) {
compareToResult
= 0;
}
return compareToResult
;
}
});
set
.addAll(list
);
return new ArrayList<>(set
);
}
转载请注明原文地址: https://win8.8miu.com/read-13557.html