java list集合(String字符串)去重的方式:


方式一:

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());


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM