[ { "id": "360570", "industryCode": "2659", "industryName": "其他合成材料制造", "pid": "360566", "industryLevel": 4, "delFlag": "0", "industryType": "02", "isLeaf": "1", }, { "id": "361529", "industryCode": "659", "industryName": "其他信息技术服务业", "pid": "361508", "industryLevel": 3, "delFlag": "0", "industryType": "02", "isLeaf": "0", }, { "id": "361530", "industryCode": "6591", "industryName": "呼叫中心", "pid": "361529", "industryLevel": 4, "delFlag": "0", "industryType": "02", "isLeaf": "1", }, { "id": "361531", "industryCode": "6599", "industryName": "其他未列明信息技术服务业", "pid": "361529", "industryLevel": 4, "delFlag": "0", "industryType": "02", "isLeaf": "1", } ] 用java代码帮我写一个把数据处理成树形接口的代码
时间: 2023-07-08 07:47:46 浏览: 56
可以使用递归方法来实现将数据处理成树形接口的代码。具体实现如下:
```java
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class IndustryTree {
public static void main(String[] args) {
// 构造测试数据
List<Map<String, Object>> dataList = new ArrayList<>();
Map<String, Object> data1 = new HashMap<>();
data1.put("id", "360570");
data1.put("industryCode", "2659");
data1.put("industryName", "其他合成材料制造");
data1.put("pid", "360566");
data1.put("industryLevel", 4);
data1.put("delFlag", "0");
data1.put("industryType", "02");
data1.put("isLeaf", "1");
dataList.add(data1);
Map<String, Object> data2 = new HashMap<>();
data2.put("id", "361529");
data2.put("industryCode", "659");
data2.put("industryName", "其他信息技术服务业");
data2.put("pid", "361508");
data2.put("industryLevel", 3);
data2.put("delFlag", "0");
data2.put("industryType", "02");
data2.put("isLeaf", "0");
dataList.add(data2);
Map<String, Object> data3 = new HashMap<>();
data3.put("id", "361530");
data3.put("industryCode", "6591");
data3.put("industryName", "呼叫中心");
data3.put("pid", "361529");
data3.put("industryLevel", 4);
data3.put("delFlag", "0");
data3.put("industryType", "02");
data3.put("isLeaf", "1");
dataList.add(data3);
Map<String, Object> data4 = new HashMap<>();
data4.put("id", "361531");
data4.put("industryCode", "6599");
data4.put("industryName", "其他未列明信息技术服务业");
data4.put("pid", "361529");
data4.put("industryLevel", 4);
data4.put("delFlag", "0");
data4.put("industryType", "02");
data4.put("isLeaf", "1");
dataList.add(data4);
// 调用方法,输出树形结构
System.out.println(buildTree(dataList, "361508"));
}
/**
* 将数据处理成树形接口
*
* @param dataList 数据列表
* @param pid 父ID
* @return 树形结构
*/
public static List<Map<String, Object>> buildTree(List<Map<String, Object>> dataList, String pid) {
List<Map<String, Object>> treeList = new ArrayList<>();
for (Map<String, Object> data : dataList) {
if (pid.equals(data.get("pid").toString())) {
List<Map<String, Object>> children = buildTree(dataList, data.get("id").toString());
if (!children.isEmpty()) {
data.put("children", children);
}
treeList.add(data);
}
}
return treeList;
}
}
```
在这个代码中,`buildTree` 方法是递归方法,用于将数据处理成树形接口。这个方法接收两个参数:数据列表和父ID。它会遍历数据列表,找到所有父ID等于参数pid的节点,并递归调用自身来处理子节点。如果当前节点有子节点,那么它会将子节点添加到自身的`children`属性中。最终,`buildTree` 方法返回一个树形结构的列表。