public class DeReapted {
public static void main(String[] args) {
List<String> as = new ArrayList<>();
as.add("a");
as.add("e");
as.add("f");
as.add("a");
as.add("d");
as.add("f");
System.out.println("原始数组:"+as);
//1.将list转换成set;
List<String> res1 = new ArrayList<>();
Set<String> set1 = new HashSet<>();
for(String s :as){
if(!set1.contains(s)){
set1.add(s);
}else {
res1.add(s);
}
}
System.out.println("方法一:将list转换成set:");
System.out.println("去重数组set1:"+set1);
System.out.println("重复元素"+res1);
System.out.println();
//2.将list的contains();
List<String> dere = new ArrayList<>();
List<String> res = new ArrayList<>();
for(String s: as){
if(!dere.contains(s)){
dere.add(s);
}else {
res.add(s);
}
}
System.out.println("方法二:new list加入新元素,实质还是通过contains方法对比");
System.out.println("去重复数组dere:" +dere);
System.out.println("不一样的元素:"+res);
System.out.println();
//3.通过i,j两个指针循环:
List<String> l3= new ArrayList<>();
List<String> res2 = new ArrayList<>();
for(int i =0;i<as.size();i++){
for(int j=i+1;j<as.size();j++){
if (as.get(j).equals(as.get(i))) {
res2.add(as.get(j));
as.remove(j);
}
}
}
System.out.println("方法三:双循环:");
System.out.println("去重复数组dere:"+as);
System.out.println("不一样的元素:"+res2);
System.out.println();
//4.利用Java8 的流:
List ls4 = as.stream().distinct().collect(Collectors.toList());
System.out.println("方法四:java8stream特性:"+ls4);
}
}
四种List去重复的方法分享
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。