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);
}
}
网友评论