list集合去重方法
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
list常见的几种去重方法,昨天面试被问到出了用for遍历还有什么方法可以去重,很尴尬,没答上来,所以今天写在博客上,加深学习。
提示:以下是本篇文章正文内容,下面案例可供参考
一、HashSet去重
HashSet在存放对象的时候会判断是否为同一对象,HashSet是乱序,所以要存到新的list里才会保证顺序不会乱
代码如下(示例):
private void quCHong(List<String> list){
Set<String> s = new HashSet<>();
List<String> newList = new ArrayList<>();
for(String n: list){
if(s.add(n)){
newList.add(n);
}
}
sout(newList);
}
二、list遍历再给一个新的list(用contains)
代码如下(示例):
private void quCHong1(List<String> list){
List<String> newList1 = new ArrayList<>();
for(String n: list){
if(!newList.contains(n)){
newList.add(n);
}
}
sout(newList1);
}
三、set去重
代码如下(示例):
private void quCHong3(List<String> list){
Set s1 = new HashSet();
List newList = new ArrayList();
set.addAll(list);
newList.addAll(s1);
//List newList = new ArrayList(new HashSet(list));
System.out.println(newList);
}