java 和 js非递归成树

阅读: 评论:0

java 和 js非递归成树

java 和 js非递归成树

测试类

	public class A{private Integer id;private Integer parantId;private String name;private List<A> children=new ArrayList<A>();public List<A> getChildren() {return children;}public void setChildren(List<A> children) {this.children = children;}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public Integer getParantId() {return parantId;}public void setParantId(Integer parantId) {this.parantId = parantId;}public String getName() {return name;}public void setName(String name) {this.name = name;}}
public class TreeUtil {public static <T,M> List<T> toTree(List<T> data,TreeGetList<T> callList,TreeGetCode<M,T> code,TreeGetCode<M,T> pcode){Map<M,T> groupData=new HashMap<M,T>();for(T t:data) {groupData.Code(t), t);}data.forEach(m->{M paran&#Code(m); if(paran!=null&&ainsKey(paran)) {List<T>  d= (paran));d.add(m);}});for(int j=data.size()-1;j>=0;j--) {M paran= (j));if(!(paran==null||!ainsKey(paran))) {ve(j);}} return data;} public interface TreeGetList<T>{public  List<T> getList(T t);}public interface TreeGetCode<T,M>{public  T getCode(M m);}
}

最后main 调用测试

	 public static void main(String ...args) {A o=new A();o.setId(1);A o1=new A();o1.setId(2);o1.setParantId(1);List<A> data=new ArrayList<A>();data.add(o);data.add(o1); A o3=new A();o3.setId(55);o3.setParantId(1);data.add(o3);data= Tree(data, 	//数据源m-&Children()	//获取子节点列表,  m-&Id() 		//获取id,m-&ParantId()		//获取父节点id);System.out.JSONString(data));}
	var toTree=function(data,id,pid,childName){var pdata={};for(var i=0;i<data.length;i++){ var key=data[i][pid]; if(!pdata[key]){ pdata[key]=[]; }  pdata[key].push(data[i]); } //构建下级关系 for(var i=0;i<data.length;i++){ if(pdata[data[i][id]]){ data[i][childName]=pdata[data[i][id]]; for(var q=0;q<data[i][childName].length;q++){  data[i][childName][q].delete=true; } } }  for(var i=data.length-1;i>=0;i--){ if(data[i].delete){   //删除节点数据 delete data[i].delete;data.splice(i,1); } }return data;}

测试代码

	toTree([{id:1,pid:null},{id:2,pid:1},{id:3,pid:2}],"id","pid","list")

本文发布于:2024-02-05 09:10:51,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170728527565200.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:递归   java   js
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23