Java集合去重的几种方法

1.基础数据类型集合去重:

例:String

    public static void main(String[] args) {        List list = new ArrayList<>();        list.add("c");        list.add("c");        list.add("a");        list.add("a");        list.add("b");        //1.set集合去重,不改变原有的顺序        pastLeep1(list);        //2.遍历后判断赋给另一个list集合  不改变原有的顺序        pastLeep2(list);        //3.set去重  并按自然顺序排序        pastLeep3(list);        //4.set去重(缩减为一行)        pastLeep4(list);        //5.去重并按自然顺序排序        pastLeep5(list);    }

方法实现:

 //1.set集合去重,不改变原有的顺序    public static void pastLeep1(List list){        System.out.println("list = [" + list.toString() + "]");        List listNew=new ArrayList<>();        Set set=new HashSet();        for (String str:list) {            if(set.add(str)){                listNew.add(str);            }        }        System.out.println("listNew = [" + listNew.toString() + "]");    }    //2.遍历后判断赋给另一个list集合 不改变原有的顺序    public static void pastLeep2(List list){        System.out.println("list = [" + list.toString() + "]");        List listNew=new ArrayList<>();        for (String str:list) {            if(!listNew.contains(str)){                listNew.add(str);            }        }        System.out.println("listNew = [" + listNew.toString() + "]");    }    //3.set去重  并按自然顺序排序    public static void pastLeep3(List list){        System.out.println("list = [" + list + "]");        Set set = new HashSet();        List listNew=new ArrayList<>();        set.addAll(list);        listNew.addAll(set);        System.out.println("listNew = [" + listNew + "]");    }    //4.set去重(缩减为一行) 并按自然顺序排序    public static void pastLeep4(List list){        System.out.println("list = [" + list + "]");        List listNew=new ArrayList<>(new HashSet(list));        System.out.println("listNew = [" + listNew + "]");    }    //5.去重并按自然顺序排序    public static void pastLeep5(List list){        System.out.println("list = [" + list + "]");        List listNew=new ArrayList<>(new TreeSet(list));        System.out.println("listNew = [" + listNew + "]");    }

2.对象根据指定属性去重

 ListuserList = new ArrayList<>();        userList.add(new User(1,"小李","男"));        userList.add(new User(5,"小李","男"));        userList.add(new User(7,"小李","男"));        userList.add(new User(3,"小李","男"));        userList.add(new User(1,"小李","男"));        userList.add(new User(5,"小李","男"));        //6.对象 根据指定属性去重 并按自然顺序排序        System.out.println(removeDuplicateUser(userList));        //7. 根据指定属性去重 并按自然顺序排序2        System.out.println(removeDuplicateUser2(userList));
   //6.对象 根据指定属性去重 并按自然顺序排序    public static ArrayList removeDuplicateUser(List users) {        Set set = new TreeSet(new Comparator() {            @Override            public int compare(User o1, User o2) {                return new Integer(o1.getId()).compareTo(new Integer(o2.getId()));            }        });        set.addAll(users);        return new ArrayList(set);    }    //7. 根据指定属性去重 并按自然顺序排序2    public static List removeDuplicateUser2(List list){        List unique = list.stream().collect(                collectingAndThen(                        toCollection(() -> new TreeSet<>(comparingLong(User::getId))), ArrayList::new)        );        return unique;    }
发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章