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

网站建设300seo 网站推广

网站建设300,seo 网站推广,阿里云网站建设素材,淮南人才网目录 一、前言二、具体实现及拓展2.1、递归-目标节点到根节点的路径数据2.2、list转换为tree结构2.3、tree转换为list结构 一、前言 这么多年工作经历中#xff0c;“数据结构和算法”真的是超重要#xff0c;工作中很多业务都能抽象成某种数据结构问题。下面是项目中遇到的… 目录 一、前言二、具体实现及拓展2.1、递归-目标节点到根节点的路径数据2.2、list转换为tree结构2.3、tree转换为list结构 一、前言 这么多年工作经历中“数据结构和算法”真的是超重要工作中很多业务都能抽象成某种数据结构问题。下面是项目中遇到的一个问题。 业务背景 在一个复杂的N叉树目录上通过模糊搜索只返回搜索到的【要返回完整的从root到目标节点】节点链路以便外围系统直接使用 分析 按照实际操作模糊搜索只能搜索到需要的几个目标节点数据但实际业务需要的是这些目标节点到根节点的结构以便完美展示。 问题抽象 N叉树中找到所有目标节点到根节点的数据并构建成tree结构返回。如下图要返回这些目标节点到根节点的整个路径上的节点数据。 二、具体实现及拓展 完整的代码如下 public void filterNodeFromTree(){//查询所有的【有树形结构的】列表数据ListNodeTreeDo originList new ArrayList();MapString,NodeTreeDo originMap originList.stream().collect(Collectors.toMap(NodeTreeDo::getId,ma-ma));//目标节点idListString targetIds new ArrayList();SetString curRootIdSet new HashSet(); //收集某个目标节点到root的路径经过的所有节点for(String id : targetIds){if(curRootIdSet.contains(id)) continue;//已经经历过路径跳过curRootIdSet.addAll(collectNeedNode(originMap,id));}//收集到所有需要的节点的id然后在过滤多余的ListNodeTreeDo needList originList.stream().filter(k-curRootIdSet.contains(k.getId())).collect(Collectors.toList());//构建成treelistToTree(needList);}2.1、递归-目标节点到根节点的路径数据 private SetString collectNeedNode(MapString,NodeTreeDo originMap,String targetId){SetString idResultSet new HashSet();collectNeedNode(originMap,targetId,idResultSet);return idResultSet;}private boolean collectNeedNode(MapString,NodeTreeDo originMap,String targetId,SetString idSet){if(!originMap.containsKey(targetId)) return false;idSet.add(targetId);NodeTreeDo cur originMap.get(targetId);return collectNeedNode(originMap,cur.getParentId(),idSet);} 2.2、list转换为tree结构 private ListNodeTreeDo listToTree(ListNodeTreeDo originList){MapString, ListNodeTreeDo nodeByPidMap originList.stream().collect(Collectors.groupingBy(NodeTreeDo::getParentId));// 循环一次设置当前节点的子节点originList.forEach(node - node.setChildren(nodeByPidMap.get(node.getId())));// 获取 一级列表return originList.stream().filter(k-.equals(k.getParentId())).collect(Collectors.toList());}2.3、tree转换为list结构 private ListNodeTreeDo treeToList(ListNodeTreeDo treeList){ListNodeTreeDo resultList new ArrayList();for(NodeTreeDo node : treeList){getAllListFromChildren(node,resultList);}return resultList;}private void getAllListFromChildren(NodeTreeDo node,ListNodeTreeDo resultList){NodeTreeDo copy CommonUtil.transForm(node,NodeTreeDo.class);copy.setChildren(null); //深度拷贝后把children设置为nullresultList.add(copy);if(CollectionUtils.isNotEmpty(node.getChildren())){for(NodeTreeDo temp : node.getChildren()){getAllListFromChildren(temp,resultList);}}//没子节点了自动会退出}
http://www.zqtcl.cn/news/201766/

相关文章:

  • 企业要建设一个网站需要多少钱网站制作的关键技术
  • 大连住房和城乡建设网站工程公司取名字大全
  • 自建网站投放广告网页设计色彩搭配
  • 网站建站公司哪家价钱合理seo优化是什么职位
  • 德州建设网站网络营销推广方式
  • 网站建设经费预算策划书河南省城乡建设厅网站
  • 校园二手网站开发与设计任务书wordpress 分类名称
  • 高端网站建设那公司好简约网站设计欣赏
  • 域名的网站建设方案书wordpress图片插件
  • 哪个网站做的w7系统好百度网络营销的概念
  • 哪里接单做网站怎么个人网站设计
  • 乐陵seo网站优化网站后期维护是做什么
  • 网站导航html源码网站编辑的工作职能有哪些
  • 品牌网站建设网wordpress密码保护文章
  • 体彩网站开发网站建设备案流程图
  • 云南网站建设天度网页界面设计遵循的原则
  • dede多个网站怎么做wordpress+adsense主题
  • 如何做网站营销江苏网站建设系统服务
  • 公司网站需要备案网络设置怎么设置
  • 网站正在建设中中文模板廊坊网站优化
  • 8免费网站建站网页网站模板
  • 网站开发算法面试滨州建设工程备案网站
  • 扬州网站开发个人做美食视频网站
  • 网站建设属于技术服务吗关于网站建设
  • 网站建设推广好处西安工业设计公司
  • 深圳宝安p2p网站系统的建设百度广告联盟标识
  • 企业网站备案怎么填写东莞市场监督管理局官网
  • 网站建站网站91955内蒙古建设集团招聘信息网站
  • 巴中建设厅网站电话seo是网络优化吗
  • 中国做投资的网站做网站的公司怎么推广