java代码实现树形结构
比如:福建省|省公司本部|福州公司
福建省|省公司本部|厦门公司
浙江省|省公司本部|杭州公司
如何java代码实现变成
id name pid
1 福建省 0
2 省公司本部 1
3 福州公司 2
4 厦门公司 2
5 浙江省 0
6 省公司本部 5
7 杭州公司 6
各位大神能否帮小弟解答下。。。不胜感激。。。 java
[解决办法]
这个以前写的,可以参考一下
需要json-lib-2.4-jdk15.jar
getGroupTree()返回JSONArray ,JSONArray toString之后可以直接在页面上显示树形结构
前台用easyui的tree
public JSONArray getGroupTree() {
List<Map<String, Object>> treeList = new ArrayList<Map<String, Object>>();
Map<String, Object> map = new HashMap<String, Object>();
Group group = getGroupByParentId(0);
if (group == null) {
return null;
}
map = groupToMap(group);
tree(map);
treeList.add(map);
JSONArray jsonArray = JSONArray.fromObject(treeList);
return jsonArray;
}
public static Map<String, Object> groupToMap(Group group){
Map<String, Object> map = new HashMap<String, Object>();
map.put("id", group.getId());
map.put("text", group.getName());
return map;
}
public Map<String, Object> tree(Map<String, Object> map) {
int id = Integer.parseInt(map.get("id").toString());
List<Group> groups = getGroupsByParentID(id);
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
for (int i = 0; i < groups.size(); ++i) {
Group group = groups.get(i);
Map<String, Object> m = groupToMap(group);
if (group.getIsleaf() == 0) {
tree(m);
}
list.add(m);
}
map.put("children", list);
return map;
}