方式一:
List<String> listTemp = new ArrayList<String>();
for(int i=0;i<list.size();i++){
if(!listTemp.contains(list.get(i))){
listTemp.add(list.get(i));
}
}
方式二:
// 创建一个ArrayList 包含两个相同元素"111"
List<String> list = new ArrayList<String>();
list.add("111");
list.add("111");
list.add("222");
// 创建HashSet集合
Set set = new HashSet();
set.addAll(list); // 将list所有元素添加到set中 set集合特性会自动去重复
list.clear();
list.addAll(set); // 将list清空并将set中的所有元素添加到list中
方式三:
list=list.stream()
.distinct()
.collect(Collectors.toList());
注意此处collect方法返回的是一个新的字符串
<List<String>, ?> List<String> java.util.stream.Stream.collect(Collector<? super String, ?, List<String>> collector)
Distinct()只能对于简单的如List<int>等起作用,而对于List<T>不起作用。
方法四:
对于list的对象的集合
List<PexContentBill> bills = CollectionUtils.isNotEmpty(ids)?commonInfoDao.listBillDataByIds(ids):new ArrayList<>();
bills = bills.stream().filter(StreamAPIUtil.distinctByKey(PexContentBill::getBillId)).collect(Collectors.toList());