当前位置: 首页 > news >正文

什么网站做外贸最多的e语言可以做网站吗

什么网站做外贸最多的,e语言可以做网站吗,做背景图 网站,自己有网站做app吗文章目录 概要对象结构示例完整示例小结 概要 本文主要记录在树形结构中会遇到的问题, 使用部门结构讲解,main方法进行演示。 1、获取部门树结构 2、根据部门id获取所有下级 3、根据部门id获取上级部门 4、根据部门id获取类似面包屑(总公司…

文章目录

    • 概要
    • 对象结构示例
    • 完整示例
    • 小结

概要

本文主要记录在树形结构中会遇到的问题,
使用部门结构讲解,main方法进行演示。

1、获取部门树结构
2、根据部门id获取所有下级
3、根据部门id获取上级部门
4、根据部门id获取类似面包屑(总公司/技术部/技术一部)

对象结构示例

@Data
static class Department{Integer id;String name;Integer parentId;
}

可能会用到的依赖(非必要)

<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.28</version>
</dependency>

完整示例

package com.example.springboot_demo;import com.alibaba.fastjson.JSONObject;
import lombok.Data;import java.util.*;
import java.util.stream.Collectors;public class TreeTest {public static void main(String[] args) {List<DepartmentVO> departments = Arrays.asList(new DepartmentVO(1, "总公司", 0),new DepartmentVO(2, "技术部", 1),new DepartmentVO(3, "技术一部", 2),new DepartmentVO(4, "技术二部", 2),new DepartmentVO(5, "业务部", 1),new DepartmentVO(6, "业务一组", 5),new DepartmentVO(7, "业务二组", 5),new DepartmentVO(8, "业务二组一部", 7));//根据id获取所有下级List<DepartmentVO> subList = new ArrayList<>();getSubList(2,departments,subList);System.out.println(JSONObject.toJSON(subList));//根据id获取所有上级List<DepartmentVO> supList = new ArrayList<>();findSupList(3,departments,supList);System.out.println(JSONObject.toJSON(supList));//根据id获取所有上级名字 类似面包屑结构 总公司/技术部/技术一部StringBuilder sb = new StringBuilder();findSupName(3,departments,sb);System.out.println(sb);//返回部门树形结构List<DepartmentVO> departmentVOS = buildTree(departments);System.out.println(JSONObject.toJSON(departmentVOS));}static List<DepartmentVO> buildTree(List<DepartmentVO> departments){//构建根节点List<DepartmentVO> rootNode = departments.stream().filter(i -> Objects.equals(i.getParentId(), 0)).collect(Collectors.toList());//用根节点去递归找到childfor (DepartmentVO department : rootNode) {department.setChild(buildTree(department.getId(), departments));}return rootNode;}static List<DepartmentVO> buildTree(Integer deptId, List<DepartmentVO> departments){List<DepartmentVO> childList = new ArrayList<>();for (DepartmentVO dept : departments) {// 遍历所有属于父级节点的子节点if (Objects.equals(deptId, dept.getParentId())) {childList.add(dept);}}//然后给所有子节点添加子节点for (DepartmentVO dept : childList) {// 遍历所有属于父级节点的子节点dept.setChild(buildTree(dept.getId(), departments));}return childList;}//根据部门id查找所有下级部门static void getSubList(Integer id, List<DepartmentVO> departments, List<DepartmentVO> result) {for (DepartmentVO departmentVO : departments) {if (Objects.equals(departmentVO.getParentId(), id)) {getSubList(departmentVO.getId(), departments, result);result.add(departmentVO);}}}//根据部门id 获取所有上级static void findSupList(Integer deptId, List<DepartmentVO> departments, List<DepartmentVO> result){DepartmentVO departmentVO = departments.stream().filter(i -> Objects.equals(deptId, i.getId())).findFirst().orElse(null);if (departmentVO == null) {return;}findSupList(departmentVO.getParentId(), departments, result);result.add(departmentVO);}// 如 总公司/技术部/技术一部static void findSupName(Integer deptId, List<DepartmentVO> departments, StringBuilder sb){DepartmentVO departmentVO = departments.stream().filter(i -> Objects.equals(deptId, i.getId())).findFirst().orElse(null);if (departmentVO == null) {return;}findSupName(departmentVO.getParentId(), departments, sb);if(sb.length() > 0){sb.append("/");}sb.append(departmentVO.getName());}@Datastatic class DepartmentVO{Integer id;String name;Integer parentId;List<DepartmentVO> child;public DepartmentVO(Integer id, String name, Integer parentId) {this.id = id;this.name = name;this.parentId = parentId;}}}

控制台输出:

根据id获取所有下级:[{"name":"技术一部","id":3,"parentId":2},{"name":"技术二部","id":4,"parentId":2}]
根据id获取所有上级:[{"name":"总公司","id":1,"parentId":0},{"name":"技术部","id":2,"parentId":1},{"name":"技术一部","id":3,"parentId":2}]
根据id获取所有上级名字:总公司/技术部/技术一部
返回部门树形结构:[{"name":"总公司","id":1,"parentId":0,"child":[{"name":"技术部","id":2,"parentId":1,"child":[{"name":"技术一部","id":3,"parentId":2,"child":[]},{"name":"技术二部","id":4,"parentId":2,"child":[]}]},{"name":"业务部","id":5,"parentId":1,"child":[{"name":"业务一组","id":6,"parentId":5,"child":[]},{"name":"业务二组","id":7,"parentId":5,"child":[{"name":"业务二组一部","id":8,"parentId":7,"child":[]}]}]}]}]

小结

对于树形结构、结构都是大同小异,具体的场景还需要进行对应的校验。

如果数据量庞大时、建议把List替换为Map结构。处理更快。

http://www.yayakq.cn/news/673636/

相关文章:

  • 设计网站包含的功能模块静态网站提交表单怎么做
  • 基于微信公众平台的微网站开发南沙网站建设公司哪家好
  • 网站建设导向免费注册域名流程
  • 佳木斯建设工程交易中心网站php网站后台搭建
  • 网站建设和网站优化哪个更重要哪个网站可以查询即将到期的域名
  • 陕西省城乡和住房建设厅网站网上购物商城有哪些
  • 如何让做的网站自动适应浏览器惠州市网站建设企业
  • 打码网站如何建设cn域名网站
  • 网站建设推广代理公司域名查询平台
  • 怎么做网站推广多少钱淮北做网站公司
  • 如何把网站做的更好石家庄做网站和宣传的
  • 全能网站建设pdf临海市城市建设规划局网站
  • 百度刷自己网站的关键词谷歌sem服务商
  • 网站建设zvge青海西宁网页网站制作
  • 苏州建网站最简单的做网站工具
  • wordpress网站图片网站开发是干什么的
  • 做网站信科网站建设怎样让百度收取我的网站
  • 网站建设属营改增范围吗寻找锦州网站建设
  • 苏州网站建设完整微信商城怎么开通教程
  • 广西省建设注册管理网站wordpress 附件丢失
  • 交换机做网站四川省建设厅门户网站
  • 网络网站销售ip库网站源码
  • 响应式网站样式图怎么做网站建设设计公司 知乎
  • 高港做网站看男科花了一万多了
  • 网站建设策划书结束语北京商会网站建设
  • 哈尔滨专业建设网站设计荥阳市建设局网站
  • 工商做年报网站自己做个网站多少钱
  • 设计教学网站推荐crm管理系统 一般包含
  • 网站建设平台点击进入青岛今天发生的重大新闻
  • 罗湖网站建设公司著名建筑网站