zoukankan      html  css  js  c++  java
  • 使用Set集合对List集合去重

    一、如果List中是字符串时

    先将List转为Set集合,再将Set集合转成List

    代码如下:

    @RunWith(SpringRunner.class)
    @SpringBootTest(classes = MySpringBootApplication.class)
    public class ListTest {
        public static void main(String[] args) {
            ArrayList<String> list = new ArrayList<>();
            list.add("你好");
            list.add("早上好");
            list.add("你好");
            list.add("晚上好");
            for (String s : list) {
                System.out.println(s);
            }
         System.out.println("-----------");
    //使用set去重 Set<String> set = new HashSet<>(list); List<String> list1 = new ArrayList<>(set); for (String s : list1) { System.out.println(s); } } }

    结果如下:

    你好
    早上好
    你好
    晚上好
    -----------
    你好
    早上好
    晚上好

    二、如果List中是对象时

    Role对象

    @Data
    @AllArgsConstructor
    public class Role {
        /**
         * 角色id主键
         */
        private Integer roleId;
        /**
         * 角色名称
         */
        private String roleName;
        /**
         * 职能描述
         */
        private String remark;
    
    }

    测试类:

    public class Demo01 {
        public static void main(String[] args) {
            Role role1 = new Role(1, "开发", "aa");
            Role role2 = new Role(2, "测试", "bb");
            Role role3 = new Role(3, "运维", "cc");
            Role role4 = new Role(4, "开发", "aa");
            List<Role> roles = new ArrayList<>();
            roles.add(role1);
            roles.add(role2);
            roles.add(role3);
            roles.add(role4);
            List<Role> roles1 = new ArrayList<>();
            Set<String> set = new HashSet<>();
            roles.stream().forEach(item ->{
                if (set.add(item.getRoleName())) {
                    roles1.add(item);
                }
            });
            roles1.stream().forEach(System.out::println);
        }
    }

    结果:

    Role(roleId=1, roleName=开发, remark=aa)
    Role(roleId=2, roleName=测试, remark=bb)
    Role(roleId=3, roleName=运维, remark=cc)
  • 相关阅读:
    Ubuntu 14.04 LTS 火狐浏览器中,鼠标选择文字被删除的解决办法
    Android 冷启动时间优化
    Word 2010 小技巧篇
    Word 2010 制作文档结构之图标自动编号设置
    Word 2010 制作文档结构之章节自动编号
    Word 2010 制作文档结构之页码从正文开始设置
    字幕通-字幕翻译工具
    图灵社区 和 大家网
    Python GUI编程之WxPython
    VLC媒体视频播放器 v3.0.2官方版
  • 原文地址:https://www.cnblogs.com/zwh0910/p/15680469.html
Copyright © 2011-2022 走看看