您现在的位置是:首页 > 文章详情

hierarchy-utils 升级 1.0.2,增加递归遍历树形数据处理

日期:2024-07-07点击:173

hierarchy-utils (或比 hutool 树形处理工具 TreeUtil 更好使~)

 用于构建/查找具有层级关系树形数据的工具库,以解决业务中常见的树形数据处理需求 支持自定义过滤数据、排序及转换数据、打平递归树数据、递归遍历树形数据处理等 

更新内容如下:

增加递归遍历树形数据处理 (可用于用户处理自定义业务逻辑)

示例:

  Integer rootId = -1;  List<Menu> treeResults = MenuResolver.getResolvedWithChildrenMenuList(rootId);  HierarchyEachUtils.recursionEach(treeResults, Menu::getChildren, new HierarchyEachUtils.EachCallback<Menu>() {  @Override  public boolean withParentList() {  //设置启用,后续用于获取遍历元素的所有父级列表  return true;  }  @Override  public void beforeEach(List<Menu> sourceList) {  //对源数据列表进行处理,比如有多个进行排个序?  }  @Override  public void each(int level, Menu current, Menu parent, List<Menu> parentList, List<Menu> children, boolean hasExistChildren) {  if (hasExistChildren) {  //排序子元素 -- 降序  children.sort(Comparator.comparing(Menu::getSort).reversed());  }  if (level == HierarchyEachUtils.FIRST_LEVEL) {  //第一层级时 -- 没有真实存在的父元素  System.out.println(String.format("level: %s, id: %s, sort: %s, parent id: %s, path: %s", level, current.getId(), current.getSort(), "-", current.getId()));  } else {  System.out.println(String.format("level: %s, id: %s, sort: %s, parent id: %s, path: %s", level, current.getId(), current.getSort(), parent.getId(), Stream.of(parentList, Collections.singletonList(current)).flatMap(Collection::stream).map(Menu::getId).map(String::valueOf)  .collect(Collectors.joining("-"))));  }  }  }); 
原文链接:https://www.oschina.net/news/300839/hierarchy-utils-1-0-2-released
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章