在开放过程中碰到许多需要组合成树的数据,会让我们比较头疼,下面公开一种比较实用的方法,希望能帮助到需要帮助的人。
话不多说上代码:下面这个是转树的方法。
/***列表转树(包含根节点)*
paramlist*return*/OverridepublicTreegetTreeFromList(ListTreelist){Treeresult=null;if(list!=nulllist.size()0){for(Treeo:list){if(o.getId().equals(o.getParentId())){result=o;}for(Treep:list){if(p.getId().equals(p.getParentId())){continue;}if(Objects.equals(p.getParentId(),o.getId())){ListTreechildren=o.getChildren();if(children==null){children=newArrayList();o.setChildren(children);}o.getChildren().add(p);}}}}returnresult;}/***列表转树列表(不包含根节点)*paramlist*return*/OverridepublicListTreegetTreeListFromList(ListTreelist){ListTreeresult=Lists.newArrayList();if(list!=nulllist.size()0){for(Treeo:list){if(o.getParentId().equals("1")){result.add(o);}for(Treep:list){if(p.getId().equals(p.getParentId())){continue;}if(Objects.equals(p.getParentId(),o.getId())){ListTreechildren=o.getChildren();if(children==null){children=newArrayList();o.setChildren(children);}o.getChildren().add(p);}}}}returnresult;}这是所需要的通用实体。
GetterSetterpublicclassTree{ApiModelProperty("ID")privateStringid;ApiModelProperty("节点名称")privateStringlabel;ApiModelProperty("父节点id")privateStringparentId;ApiModelProperty("子节点列表")privateListTreechildren;}以上就是列表转树的代码。
有些坑不得不踩,有些事不得不做,希望能通过分享互相进步,走过这段平凡的路。
Rui3g