import java.util.*;
import java.util.stream.Collectors;
public class DuplicateRemoval {
/**
* 双重for循环去重List
* @return
*/
public static List DuplicateRemovalBy2For(List<Integer> list){
for (int i = 0; i<list.size();i++){
for (int j = i+1; j < list.size() ; j++) {
if (list.get(i).equals(list.get(j))){
list.remove(j);
}
}
}
return list;
}
/**
* List集合contains方法循环遍历去重
* @param list
*/
public static List DuplicateRemovalByContains(List<Integer> list){
List<Integer> tempList = new ArrayList<Integer>();
for (int i = 0; i < list.size(); i++) {
boolean isContain = tempList.contains(list.get(i));
if (!isContain){
tempList.add(list.get(i));
}
}
list.clear();
list.addAll(tempList);
return list;
}
/**
* HashSet去重
* @param list
*/
public static List DuplicateRemovalByHashSet(List<Integer> list){
HashSet<Integer> hashSet = new HashSet<>(list);
list.clear();
list.addAll(hashSet);
return list;
}
/**
* 使用TreeSet去重
* @param list
* @return
*/
public static List DuplicateRemovalByTreeSet(List<Integer> list){
TreeSet treeSet = new TreeSet(list);
list.clear();
list.addAll(treeSet);
return list;
}
/**
* JDK8新特性Stream去重
* @param list
*/
public static List DuplicateRemovalByStream(List<Integer> list){
return list.stream().distinct().collect(Collectors.toList());
}
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
Random random = new Random();
for (int i = 0; i < 10; i++) {
int v = random.nextInt(5);
list.add(v);
}
System.out.println(list);
List list1 = DuplicateRemovalByContains(list);
System.out.println(list1);
}
}
整理几种List去重的方法
最新推荐文章于 2023-09-23 07:29:52 发布