首页 > 编程语言 >java常见处理数据结构的方式

java常见处理数据结构的方式

时间:2023-03-09 19:22:40浏览次数:44  
标签:schMenu java sysMenuList Collectors 常见 collect stream 数据结构 id

1.根据父id,将列表整理为树状结构

        if (CollUtil.isNotEmpty(sysMenuList)) {
            //使用java8转为树状图结构
            Map<Long, List<SysMenu>> longListMap = sysMenuList.stream().collect(Collectors.groupingBy(SysMenu::getParentId));
            sysMenuList.forEach(schMenu -> schMenu.setChildren(longListMap.get(schMenu.getId())));
            sysMenuList = sysMenuList.stream().filter(schMenu -> schMenu.getParentId() == 0).collect(Collectors.toList());
        }

 

2.数据根据id去重

        sysMenus = sysMenus.stream()
                .collect(Collectors
                        .collectingAndThen(Collectors
                                .toCollection(() -> new TreeSet<>(Comparator.comparing(SysMenu::getId))), ArrayList::new)
                );

 

标签:schMenu,java,sysMenuList,Collectors,常见,collect,stream,数据结构,id
From: https://www.cnblogs.com/p201821460026/p/17201126.html

相关文章

  • 临时修改java_home
    本机日常使用的jdk17,但是偶尔需要在cmd下使用jdk8,比如我需要使用seata1.5.2setJAVA_HOME=C:\ProgramFiles\Java\jdk1.8.0_301setPATH=%JAVA_HOME%\bin;再执行seat......
  • Java运算符详解
    Java运算符详解算术运算符+,-*,/,%,++,--除法时注意作用范围多个操作数,有一个为long、double······就是long,否则都会转为int,byte和short进行运算也是int++、-......
  • Java变量详解
    Java变量详解类变量static修饰符修饰的变量 作用域为全局实例变量在类中而不在方法中定义的变量或者说属性作用域为类中,方法中使用必须实例化出一个对象通过对象去调......
  • Java数据类型详解
    Java数据类型详解基本数据类型(8种)整数类型byte1个字节-128-127short2个字节负的3万多到正的三万多-32768-32767int4个字节负的20多亿到正的20多亿......
  • Java基础复习
    1、什么是JVM?JVM是Java虚拟机,Java编译器首先将Java代码编译为字节码,然后字节码转换为本地机器码(计算机可以直接执行的指令集)。2、什么是JRE?JRE(Java运行时环境)是一个软......
  • Java 和 native 的一些进展
    GraalVMJava生成DLL/SOhttps://medium.com/graalvm/3-ways-to-polyglot-with-graalvm-fb28c1542b45ProjectPanama调用C库的新形式,JNA的挑战者,目的是能导入OpenC......
  • Java:包装类的缓存机制是?
    对包装类进行直接赋值时,若值在缓存区内,则会指向执行缓存区的地址。(通过new赋值则不会)缓存范围:1、Boolean,全部缓存。2、Character、Byte、Short、Intege......
  • java-IO-java类创建功能
       ......
  • Java:数据类型有哪些?默认值呢?
    数据类型:8+1一、基本数据类型1、数字类型:整型:byte(1字节)、shot(2字节)、int(4字节,默认)、long(8字节)浮点型:float(4字节)、double(8字节,默认)2、字......
  • java
    trim() 函数移除字符串两侧的空白字符或其他预定义字符。功能除去字符串开头和末尾的空格或其他字符。函数执行成功时返回删除了string字符串首部和尾部空格的字符串,发生......