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去重复的方法分享
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...