java8 树类型转换

/*** 创建树** @param list       列表* @param parentRoot 父根* @return {@link List}<{@link TreeLabelDto}>*/
public static List<TreeLabelDto> createTree(List<TreeLabelDto> list, String parentRoot) {Map<String, List<TreeLabelDto>> rootList = list.stream().filter(treeDto -> !treeDto.getParentId().equals(parentRoot)).collect(Collectors.groupingBy(treeDto -> treeDto.getParentId()));list.forEach(treeDto -> treeDto.setChildren(rootList.get(treeDto.getId())));return list.stream().filter(treeDto -> treeDto.getParentId().equals(parentRoot)).collect(Collectors.toList());
}

package com.stock.mr.enterprise.common.dto;

import net.logstash.logback.encoder.org.apache.commons.lang3.builder.EqualsBuilder;
import net.logstash.logback.encoder.org.apache.commons.lang3.builder.HashCodeBuilder;
import org.apache.pulsar.shade.com.fasterxml.jackson.annotation.JsonBackReference;
import org.apache.pulsar.shade.com.fasterxml.jackson.annotation.JsonManagedReference;

import java.io.Serializable;
import java.util.List;

public class TreeLabelDto implements Serializable {
private static final long serialVersionUID = 2434282106176669573L;
private String id;
private String parentId;
@JsonBackReference
private TreeLabelDto parent;
@JsonManagedReference
private List children;
private String name;
private String label;
private int level;
private int sort;
private String rootId;
private String type;
private boolean isLeaf;
private String description;
private String flag;
private String value;

public TreeLabelDto() {
}public TreeLabelDto(String id, String parentId, String name) {this.id = id;this.parentId = parentId;this.name = name;
}public String getDescription() {return this.description;
}public void setDescription(String description) {this.description = description;
}public String getId() {return this.id;
}public void setId(String id) {this.id = id;
}public String getParentId() {return this.parentId;
}public void setParentId(String parentId) {this.parentId = parentId;
}public void setRootId(String rootId) {this.rootId = rootId;
}public String getRootId() {return this.rootId;
}public TreeLabelDto getParent() {return this.parent;
}public void setParent(TreeLabelDto parent) {this.parent = parent;
}public String getName() {return this.name;
}public void setName(String name) {this.name = name;
}public String getLabel() {return label;
}public void setLabel(String label) {this.label = label;
}public int getLevel() {return this.level;
}public void setLevel(int level) {this.level = level;
}public String getType() {return this.type;
}public List<TreeLabelDto> getChildren() {return this.children;
}public void setChildren(List<TreeLabelDto> children) {this.children = children;
}public void setType(String type) {this.type = type;
}public boolean isLeaf() {return this.isLeaf;
}public void setLeaf(boolean isLeaf) {this.isLeaf = isLeaf;
}public int getSort() {return this.sort;
}public void setSort(int sort) {this.sort = sort;
}public String getFlag() {return this.flag;
}public void setFlag(String flag) {this.flag = flag;
}public int hashCode() {return (new HashCodeBuilder(17, 37)).append(this.id).append(this.parentId).toHashCode();
}public boolean equals(Object obj) {boolean isEqual = false;if (obj != null && TreeLabelDto.class.isAssignableFrom(obj.getClass())) {TreeLabelDto TreeLabelDto = (TreeLabelDto)obj;isEqual = (new EqualsBuilder()).append(this.getId(), TreeLabelDto.getId()).append(this.getParentId(), TreeLabelDto.getParentId()).isEquals();}return isEqual;
}public String toString() {return "Node {id=" + this.id + ", parentId=" + this.parentId + ", children=" + this.children + ", name=" + this.name + ", level =" + this.level + "}";
}public String getValue() {return this.value;
}public void setValue(String value) {this.value = value;
}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/28127.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

springboot原理篇-springboot

springboot原理篇-springboot&#xff08;三&#xff09; 一、起步依赖 虽然我是直接学习springboot的&#xff0c;没有经历过使用spring开发&#xff0c;但是鉴于我还学习了c,对依赖这方面真的一言难尽&#xff01;springboot起步依赖解决依赖问题我实在是羡慕&#xff01; 直…

第 18章 安全架构设计理论与实践

安全架构是架构面向安全性方向上的一种细分&#xff0c;可关注三个安全方面&#xff0c;即产品安全架构、安全技术体系架构和审计架构&#xff0c;这三个方面可组成三道安全防线。本章主要分析安全威胁、介绍安全模型&#xff0c;在此基础上&#xff0c;就系统、信息、网络和数…

mac m芯片安装win11遇坑

mac m芯片安装win11遇坑 1、下载arm架构镜像 磁力链接&#xff1a; magnet:?xturn:btih:e8c15208116083660709eac9aee124e025c01447&dnSW_DVD9_Win_Pro_11_22H2_64ARM_ChnSimp_Pro_Ent_EDU_N_MLF_X23-12755.ISO&xl57198960642、使用VMWare Fusion安装&#xff0c;启…

element Steps 步骤条无法设置单击事件

原因&#xff1a;vue封装click方法阻止了element组件的原DOM事件 解决方案 为 click方法 添加修饰符 native&#xff0c;click.native <el-steps :active"1"><el-step title"步骤 1" description"这是一段很长很长很长的描述性文字" cl…

从0开始理解DevOps

目录 一、DevOps背景 二、DevOps介绍 DevOps 组成 三、Jenkins Jenkins 工作流程 四、云原生与DevOps 相信你一定听过 DevOps 这个词&#xff0c;那它到底是什么呢&#xff1f;为什么越来越多的互联网企业都在追随使用它&#xff1f;它与云原生有什么关系&#xff1f;本文将…

VRChat 2024年裁员原因与背景深度分析

VRChat&#xff0c;作为2022年元宇宙/VR社交领域的巨头&#xff0c;近期在2024年宣布裁员计划&#xff0c;其背后原因和背景值得业界尤其是仍在纯元宇宙虚拟空间创业的同仁们重点关注。 一、创始人决策失误 根据CEO的邮件披露&#xff0c;VRChat的创始人因缺乏经验和过度自信…

Java 桥接模式(Bridge Pattern)是设计模式中的一种结构型设计模式,桥接模式的核心思想是将抽象与实现解耦

桥接模式&#xff08;Bridge Pattern&#xff09;是一种结构型设计模式&#xff0c;它将抽象部分与它的实现部分分离&#xff0c;使它们都可以独立地变化。桥接模式的核心思想是将抽象与实现解耦&#xff0c;使得它们可以独立扩展。 在桥接模式中&#xff0c;通常包含以下四个…

八股两场合集

Java 语言有哪些特点?(基本概念) JVM vs JDK vs JRE Java为什么半编译半解释语言 continuexxx的区别 finalxxxx的区别(finalize不熟悉) 成变和成变的区别 重载和重写有什么区别 字符型常量与字符串常量区别(卡顿,2字节) 深拷贝与浅拷贝的区别,引用拷贝了解吗(不了解引…

MySQL之优化服务器设置(四)

优化服务器设置 InnoDB的IO配置 双写缓冲(Doublewrite Buffer) InnoDB用双写缓冲来避免页没写完整所导致的数据损坏。当一个磁盘写操作不能完整地完成时&#xff0c;不完整的页写入就可能发生&#xff0c;16KB的页可能只有一部分被写到磁盘上。有多种多样的原因(崩溃、Bug&am…

【纯干货级教程】深度学习根据loss曲线进行分析调参

相信很多刚刚接触目标检测系列算法小伙伴跑深度学习算法时会有许多困惑&#xff0c;比如训练得出的loss曲线有什么意义&#xff1f;训练的一些参数要如何设置选择&#xff1f;选择哪个算法模型作为baseline、选择哪个参数量/复杂度/深度的模型进行训练最为合适&#xff1f; 本…

生成和链接动态库

生成和链接动态库 在Linux和windows中的动态库是不一样的 linux 的动态库不需要设置导入导出符号&#xff0c;以.os为后缀windows中需要设置导入和导出符号.lib&#xff0c;以及动态库的后缀是dll 1、windows环境 1、创建动态库 项目结构 CMakeLists.txt cmake_minimum_re…

如何使用 pip 卸载所有已安装的 Python 包?

在开发过程中,我们可能会安装许多 Python 包,有时需要彻底清理环境,以便从头开始或者解决冲突问题。下面将介绍如何使用 pip 命令卸载所有已安装的 Python 包。 一、列出所有已安装的包 首先,需要列出当前环境中所有已安装的包。使用以下命令: pip freeze这将输出所有已…

使用Ventoy 替代Win_To_Go更好的随身系统

Ventoy支持在物理机上直接启动安装了 Linux/Windows 系统的 磁盘映像文件 。 系统是在真实物理机上运行&#xff0c;并不是在虚拟机里运行&#xff0c;没有性能损失。支持 Legacy BIOS 和 UEFI 模式。支持从任意磁盘启动磁盘映像。 Windows 支持固定大小以及动态扩展类型的 VH…

设计模式-代理模式Proxy(结构型)

代理模式&#xff08;Proxy&#xff09; 代理模式是一种结构型模式&#xff0c;它可以通过一个类代理另一个类的功能。代理类持有被代理类的引用地址&#xff0c;负责将请求转发给代理类&#xff0c;并且可以在转发前后做一些处理 图解 角色 抽象主题&#xff08;Subject&…

ActiViz中的拾取函数介绍

文章目录 1. 拾取函数概述2. 拾取函数的类型3. 拾取函数的工作流程4. 点拾取函数(vtkPointPicker)5. 单元拾取函数(vtkCellPicker)6. 世界坐标拾取函数(vtkWorldPointPicker)7. 近场拾取函数(vtkPropPicker)8. 拾取函数的工作流程9. 点拾取函数(vtkPointPicker)详解1…

光功率计传感器

光探测仪表: 激光功率计探头按照不同的原理和材料分为热电堆型、光电二极管型以及包含两种传感器的综合探头, 激光能量计则有热释电传感器和热电堆传感器探头 热释电效应传感器: 热释电传感器的工作原理主要是基于热释电效应。当物体处于不同温度时,会发射出不同强度的红…

gcn+tcn+transformer入侵检测

gcn gcn_out self.gcn(A_hat, D_hat, X) 的公式实际上是图卷积网络&#xff08;GCN&#xff09;层的核心操作。具体来说&#xff0c;这一步的计算基于图卷积的基本公式&#xff1a; H ( l 1 ) σ ( D ^ − 1 / 2 A ^ D ^ − 1 / 2 H ( l ) W ( l ) ) H^{(l1)} \sigma\left…

新人学习笔记之(常量)

一、什么是常量 1.常量&#xff1a;在程序的执行过程中&#xff0c;其值不能发生改变的数据 二、常量的分类 常量类型说明举例整型常量整数、负数、0123 456实型常量所有带小数点的数字1.93 18.2字符常量单引号引起来的字母、数字、英文符号S B字符串常量双引号引起来的&…

深入剖析 Laravel 框架:构建高效PHP应用的最佳实践

引言 随着互联网的高速发展&#xff0c;PHP 作为一门广泛使用的服务器端脚本语言&#xff0c;始终备受开发者青睐。而在众多 PHP 框架中&#xff0c;Laravel 凭借其优雅的设计和高效率&#xff0c;成为了构建现代 Web 应用的热门选择。本文将从零开始&#xff0c;探讨如何使用 …

【ubuntu中的docker记录】—— 使用docker的常用的指令记录,持续更新中

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、docker启动类指令二、docker镜像操作类指令三、docker容器操作类指令总结 前言 Docker常用指令如docker run、docker build、docker pull等&#xff0c;使…