前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >list去除相同String、对象元素

list去除相同String、对象元素

作者头像
崔笑颜
发布2020-06-08 15:52:53
发布2020-06-08 15:52:53
87300
代码可运行
举报
运行总次数:0
代码可运行

一、当相同元素为String时 方法一

代码语言:javascript
代码运行次数:0
运行
复制
    /**
     * List去重
     */
    private List<String> removeDuplicate(List<String> list) {
        LinkedHashSet<String> set = new LinkedHashSet<String>(list.size());
        set.addAll(list);
        list.clear();
        list.addAll(set);
        return list;
    }

方法二

代码语言:javascript
代码运行次数:0
运行
复制
        List<String> list= list.stream().distinct().collect(Collectors.toList());

二、当相同元素为对象时 方法一

代码语言:javascript
代码运行次数:0
运行
复制
    // 注意Comparator.comparing要根据参数的类型进行选择
    private List<GroupVO> removeDuplicateGroupVO(List<GroupVO> groupVOS){
        return groupVOS.stream().collect(
                Collectors.collectingAndThen(
                        Collectors.toCollection(
                                () -> new TreeSet<>(Comparator.comparing(GroupVO::getId))
                        ), ArrayList::new
                )
        );
    }

方法二

代码语言:javascript
代码运行次数:0
运行
复制
  public static List<Person> removeDupliById(List<Person> persons) {
        Set<Person> personSet = new TreeSet<>((o1, o2) -> o1.getId().compareTo(o2.getId()));
        personSet.addAll(persons);
 
        return new ArrayList<>(personSet);
    }

方法三

代码语言:javascript
代码运行次数:0
运行
复制
  public static <T> Predicate<T> distinctByKey(Function<? super T, Object> keyExtractor) {
        Map<Object, Boolean> map = new ConcurrentHashMap<>();
        return t -> map.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null;
    }
 
  // remove duplicate
  persons.stream().filter(distinctByKey(p -> p.getId())).forEach(p -> System.out.println(p));
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-08-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档