List<Object> data = new ArrayList<>(); data.add("通道1"); data.add("通道1.设备1"); data.add("通道1.设备1.DECNO"); data.add("通道1.设备1.DECSTATUS"); data.add("通道1.设备1.TAG2"); data.add("通道1.设备1.technology"); data.add("通道1.设备1.TIME"); data.add("通道1.设备1.v1"); data.add("通道1.设备1.v2"); data.add("通道2"); data.add("通道2.设备1"); data.add("通道2.设备1.TAG1"); data.add("西门子PLC"); data.add("西门子PLC.s7-300");此数据转换为树状结构返给前端
时间: 2024-03-19 09:45:29 浏览: 23
好的,以下是将给定的数据转换为树状结构的Java代码:
```java
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class TreeConverter {
public static void main(String[] args) {
List<Object> data = new ArrayList<>();
data.add("通道1");
data.add("通道1.设备1");
data.add("通道1.设备1.DECNO");
data.add("通道1.设备1.DECSTATUS");
data.add("通道1.设备1.TAG2");
data.add("通道1.设备1.technology");
data.add("通道1.设备1.TIME");
data.add("通道1.设备1.v1");
data.add("通道1.设备1.v2");
data.add("通道2");
data.add("通道2.设备1");
data.add("通道2.设备1.TAG1");
data.add("西门子PLC");
data.add("西门子PLC.s7-300");
Map<String, Object> tree = buildTree(data);
System.out.println(tree);
}
public static Map<String, Object> buildTree(List<Object> data) {
Map<String, Object> tree = new HashMap<>();
for (Object item : data) {
String[] parts = item.toString().split("\\.");
// Traverse the tree and create nodes as needed
Map<String, Object> node = tree;
for (int i = 0; i < parts.length; i++) {
String part = parts[i];
if (!node.containsKey(part)) {
node.put(part, new HashMap<>());
}
node = (Map<String, Object>) node.get(part);
}
}
return tree;
}
}
```
这段代码的核心是 `buildTree()` 方法,它接收一个数据列表作为输入,并返回一个树状结构的 Map 对象。该方法遍历数据列表中的每个元素,并将其拆分成多个部分(使用 `.` 分隔符)。然后,它沿着树状结构遍历这些部分,并在需要时创建新的节点。最后,它返回完整的树状结构 Map 对象。
你可以将这段代码复制到你的项目中,并对其进行适当的修改以满足你的需求。