美文网首页
四种List去重复的方法分享

四种List去重复的方法分享

作者: 软萌白甜Hedy | 来源:发表于2019-09-29 15:21 被阅读0次
    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去重复的方法分享

          本文链接:https://www.haomeiwen.com/subject/wnifpctx.html