您的位置 首页 java

把集合数组自动是转成树,java+js实现

JAVA

package com.tsxs.tools.twodimensioncode;

import java.util.ArrayList;

import java.util.List;

public class Tree {

public static void main(String[] args) {

List<Menu> list = new ArrayList<Menu>();

Menu menu1 = new Menu(1l, 0l, “menu1”);

Menu menu2 = new Menu(2l, 1l, “menu2”);

Menu menu3 = new Menu(3l, 2l, “menu3”);

Menu menu4 = new Menu(4l, 3l, “menu4”);

Menu menu5 = new Menu(5l, 1l, “menu5”);

Menu menu6 = new Menu(6l, 3l, “menu6”);

Menu menu7 = new Menu(7l, 5l, “menu7”);

Menu menu8 = new Menu(8l, 3l, “menu8”);

Menu menu9 = new Menu(9l, 0l, “menu9”);

List<Menu> result = new ArrayList<Menu>();

list.add(menu1);

list.add(menu2);

list.add(menu3);

list.add(menu4);

list.add(menu5);

list.add(menu6);

list.add(menu7);

list.add(menu8);

list.add(menu9);

for(Menu menu : list){

Boolean flag = isAdd(menu, result);

if(!flag){

result.add(menu);

}

System.out.println(result);

}

}

private static Boolean isAdd(Menu menu, List<Menu> result) {

for(Menu temp : result){

if(temp.getId().equals(menu.getpId())){

List<Menu> childs = temp.getChilds();

if(childs == null){

childs = new ArrayList<Menu>();

temp.setChilds(childs);

}

childs.add(menu);

return true;

}

if(temp.getChilds() != null){

Boolean flag = isAdd(menu, temp.getChilds());

if(flag){

return true;

}

}

}

return false;

}

}

package com.tsxs.tools.twodimensioncode;

import java.util.List;

public class Menu {

private Long id;

private Long pId ;

private String name;

private List<Menu> childs;

public Menu(Long id, Long pId, String name) {

super();

this.id = id;

this.pId = pId;

this.name = name;

}

public Menu() {

super();

}

public Long getId() {

return id;

}

public void setId(Long id) {

this.id = id;

}

public Long getpId() {

return pId;

}

public void setpId(Long pId) {

this.pId = pId;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public List<Menu> getChilds() {

return childs;

}

public void setChilds(List<Menu> childs) {

this.childs = childs;

}

@Override

public String toString() {

return “{\”id\”:” + id + “, \”pId\”:” + pId + “, \”name\”:\”” + name + “\”, \”childs\”:” + childs + “}”;

}

}

输入结果:

[{“id”:1, “pId”:0, “name”:”menu1″, “childs”:null}]

[{“id”:1, “pId”:0, “name”:”menu1″, “childs”:[{“id”:2, “pId”:1, “name”:”menu2″, “childs”:null}]}]

[{“id”:1, “pId”:0, “name”:”menu1″, “childs”:[{“id”:2, “pId”:1, “name”:”menu2″, “childs”:[{“id”:3, “pId”:2, “name”:”menu3″, “childs”:null}]}]}]

[{“id”:1, “pId”:0, “name”:”menu1″, “childs”:[{“id”:2, “pId”:1, “name”:”menu2″, “childs”:[{“id”:3, “pId”:2, “name”:”menu3″, “childs”:[{“id”:4, “pId”:3, “name”:”menu4″, “childs”:null}]}]}]}]

[{“id”:1, “pId”:0, “name”:”menu1″, “childs”:[{“id”:2, “pId”:1, “name”:”menu2″, “childs”:[{“id”:3, “pId”:2, “name”:”menu3″, “childs”:[{“id”:4, “pId”:3, “name”:”menu4″, “childs”:null}]}]}, {“id”:5, “pId”:1, “name”:”menu5″, “childs”:null}]}]

[{“id”:1, “pId”:0, “name”:”menu1″, “childs”:[{“id”:2, “pId”:1, “name”:”menu2″, “childs”:[{“id”:3, “pId”:2, “name”:”menu3″, “childs”:[{“id”:4, “pId”:3, “name”:”menu4″, “childs”:null}, {“id”:6, “pId”:3, “name”:”menu6″, “childs”:null}]}]}, {“id”:5, “pId”:1, “name”:”menu5″, “childs”:null}]}]

[{“id”:1, “pId”:0, “name”:”menu1″, “childs”:[{“id”:2, “pId”:1, “name”:”menu2″, “childs”:[{“id”:3, “pId”:2, “name”:”menu3″, “childs”:[{“id”:4, “pId”:3, “name”:”menu4″, “childs”:null}, {“id”:6, “pId”:3, “name”:”menu6″, “childs”:null}]}]}, {“id”:5, “pId”:1, “name”:”menu5″, “childs”:[{“id”:7, “pId”:5, “name”:”menu7″, “childs”:null}]}]}]

[{“id”:1, “pId”:0, “name”:”menu1″, “childs”:[{“id”:2, “pId”:1, “name”:”menu2″, “childs”:[{“id”:3, “pId”:2, “name”:”menu3″, “childs”:[{“id”:4, “pId”:3, “name”:”menu4″, “childs”:null}, {“id”:6, “pId”:3, “name”:”menu6″, “childs”:null}, {“id”:8, “pId”:3, “name”:”menu8″, “childs”:null}]}]}, {“id”:5, “pId”:1, “name”:”menu5″, “childs”:[{“id”:7, “pId”:5, “name”:”menu7″, “childs”:null}]}]}]

[{“id”:1, “pId”:0, “name”:”menu1″, “childs”:[{“id”:2, “pId”:1, “name”:”menu2″, “childs”:[{“id”:3, “pId”:2, “name”:”menu3″, “childs”:[{“id”:4, “pId”:3, “name”:”menu4″, “childs”:null}, {“id”:6, “pId”:3, “name”:”menu6″, “childs”:null}, {“id”:8, “pId”:3, “name”:”menu8″, “childs”:null}]}]}, {“id”:5, “pId”:1, “name”:”menu5″, “childs”:[{“id”:7, “pId”:5, “name”:”menu7″, “childs”:null}]}]}, {“id”:9, “pId”:0, “name”:”menu9″, “childs”:null}]

JS

<!doctype html>

<html>

<head>

<meta charset=”UTF-8″>

<title>Document</title>

<script type=”text/javascript”>

var list = [

{“id”:1,”pId”:0,”name”:”list1″,”childs”:[]},

{“id”:2,”pId”:1,”name”:”list2″,”childs”:[]},

{“id”:3,”pId”:2,”name”:”list3″,”childs”:[]},

{“id”:4,”pId”:3,”name”:”list4″,”childs”:[]},

{“id”:5,”pId”:1,”name”:”list5″,”childs”:[]},

{“id”:6,”pId”:3,”name”:”list6″,”childs”:[]},

{“id”:7,”pId”:5,”name”:”list7″,”childs”:[]},

{“id”:8,”pId”:3,”name”:”list8″,”childs”:[]},

{“id”:9,”pId”:4,”name”:”list9″,”childs”:[]}

];

var result = [];

function isAdd(menu, result) {

for(var j = 0; j < result.length; j++){

var temp = result[j];

if(temp.id == menu.pId){

var childs = temp.childs;

childs.push(menu);

result[j].childs = childs;

return true;

}

if(temp.childs.length > 0){

var flag = isAdd(menu, temp.childs);

if(flag){

return true;

}

}

}

return false;

}

for(var i = 0; i < list.length; i++){

var menu = list[i];

var flag = isAdd(menu, result);

if(!flag){

result.push(menu);

}

}

console.table(result);

</script>

</head>

<body>

</body>

</html>

文章来源:智云一二三科技

文章标题:把集合数组自动是转成树,java+js实现

文章地址:https://www.zhihuclub.com/179264.shtml

关于作者: 智云科技

热门文章

评论已关闭

11条评论

  1. Amazing tons of awesome info.
    professional custom essay writing service best essay writing service reddit

  2. Wonderful stuff. Thank you!
    mba application essay writing service best essay writing service yahoo

网站地图