以下是一个基于Java实现的树形构建的示例代码:import java.util.ArrayList;

简介: 以下是一个基于Java实现的树形构建的示例代码:import java.util.ArrayList;

以下是一个基于Java实现的树形构建的示例代码:import java.util.ArrayList;

import java.util.List;


public class TreeNode {

private LightNodeData data;

private boolean isLeaf;

private boolean isChecked;

public TreeNode(LightNodeData data) {  
    this.data = data;  
    this.isLeaf = false;  
    this.isChecked = false;  
}  
public LightNodeData getData() {  
    return data;  
}  
public void setData(LightNodeData data) {  
    this.data = data;  
}  
public boolean isLeaf() {  
    return isLeaf;  
}  
public void setLeaf(boolean isLeaf) {  
    this.isLeaf = isLeaf;  
}  
public boolean isChecked() {  
    return isChecked;  
}  
public void setChecked(boolean isChecked) {  
    this.isChecked = isChecked;  
}  
@Override  
public String toString() {  
    return data.toString();  
}  


}

public class TreeNodeData {

private LightNodeData data;

public TreeNodeData(LightNodeData data) {  
    this.data = data;  
}  
public LightNodeData getData() {  
    return data;  
}  
public void setData(LightNodeData data) {  
    this.data = data;  
}  

}

public class TreeNodeTree {

private TreeNode root;

public TreeNodeTree(TreeNode root) {  
    this.root = root;  
}  
public void buildTree(List<TreeNodeData> dataList) {  
    if (dataList.isEmpty()) {  
        return;  
    }  
    TreeNodeData data = dataList.get(0);  
    TreeNode node = new TreeNode(data);  
    for (TreeNodeData data2 : dataList) {  
        TreeNode node2 = new TreeNode(data2);  
        if (node2.isLeaf()) {  
            node.setLeaf(true);  
            node2.setLeaf(true);  
        } else {  
            node.setChecked(true);  
            node2.setChecked(true);  
        }  
        node.setData(data2.getData());  
        node2.setData(data.getData());  
    }  
    root.setData(data.getData());  
}  

}

在这个示例中,我们定义了一个TreeNode类来表示树形节点,包含节点的数据、是否为叶子节点以及是否为选中状态。我们还定义了一个TreeNodeData类来表示树形节点的数据,包含节点的数据以及是否为叶子节点和是否为选中状态。


接下来,我们定义了一个TreeNodeTree类来表示整个树形结构,包含根节点。在构造函数中,我们从数据列表中获取第一个数据,并创建一个新的节点对象。然后,我们遍历数据列表中的所有数据,对于每个数据,创建一个新的节点对象,并根据节点是否为叶子节点和是否为选中状态来设置节点的数据和状态。最后,我们将根节点的数据设置为新创建的节点对象的数据。


最后,我们可以使用以下代码来测试树形构建的功能:public static void main(String[] args) {

TreeNodeData data1 = new TreeNodeData(new LightNodeData(“A”));

TreeNodeData data2 = new TreeNodeData(new LightNodeData(“A1”));

TreeNodeData data3 = new TreeNodeData(new LightNodeData(“A11”));

TreeNodeData data4 = new TreeNodeData(new LightNodeData(“A12”));

TreeNodeData data5 = new TreeNodeData(new LightNodeData(“B1”));

TreeNodeData data6 = new TreeNodeData(new LightNodeData(“B11”));

TreeNodeTree tree = new TreeNodeTree(tree);  
tree.buildTree(dataList);  

}

相关文章
|
18天前
|
存储 NoSQL Java
使用Java和Spring Data构建数据访问层
本文介绍了如何使用 Java 和 Spring Data 构建数据访问层的完整过程。通过创建实体类、存储库接口、服务类和控制器类,实现了对数据库的基本操作。这种方法不仅简化了数据访问层的开发,还提高了代码的可维护性和可读性。通过合理使用 Spring Data 提供的功能,可以大幅提升开发效率。
61 21
|
30天前
|
监控 Java API
【潜意识Java】使用SpringBoot构建高效的RESTfulAPI
本文介绍了使用Spring Boot构建RESTful API的完整流程,涵盖从项目创建到API测试的各个步骤。
49 1
|
2月前
|
监控 Java API
探索Java NIO:究竟在哪些领域能大显身手?揭秘原理、应用场景与官方示例代码
Java NIO(New IO)自Java SE 1.4引入,提供比传统IO更高效、灵活的操作,支持非阻塞IO和选择器特性,适用于高并发、高吞吐量场景。NIO的核心概念包括通道(Channel)、缓冲区(Buffer)和选择器(Selector),能实现多路复用和异步操作。其应用场景涵盖网络通信、文件操作、进程间通信及数据库操作等。NIO的优势在于提高并发性和性能,简化编程;但学习成本较高,且与传统IO存在不兼容性。尽管如此,NIO在构建高性能框架如Netty、Mina和Jetty中仍广泛应用。
59 3
|
2月前
|
存储 监控 安全
单位网络监控软件:Java 技术驱动的高效网络监管体系构建
在数字化办公时代,构建基于Java技术的单位网络监控软件至关重要。该软件能精准监管单位网络活动,保障信息安全,提升工作效率。通过网络流量监测、访问控制及连接状态监控等模块,实现高效网络监管,确保网络稳定、安全、高效运行。
81 11
|
3月前
|
XML Java 测试技术
从零开始学 Maven:简化 Java 项目的构建与管理
Maven 是一个由 Apache 软件基金会开发的项目管理和构建自动化工具。它主要用在 Java 项目中,但也可以用于其他类型的项目。
114 1
从零开始学 Maven:简化 Java 项目的构建与管理
|
3月前
|
Java Android开发
Eclipse Java 构建路径
Eclipse Java 构建路径
57 3
|
3月前
|
人工智能 前端开发 Java
基于开源框架Spring AI Alibaba快速构建Java应用
本文旨在帮助开发者快速掌握并应用 Spring AI Alibaba,提升基于 Java 的大模型应用开发效率和安全性。
407 12
基于开源框架Spring AI Alibaba快速构建Java应用
|
3月前
|
Java 数据库连接 数据库
如何构建高效稳定的Java数据库连接池,涵盖连接池配置、并发控制和异常处理等方面
本文介绍了如何构建高效稳定的Java数据库连接池,涵盖连接池配置、并发控制和异常处理等方面。通过合理配置初始连接数、最大连接数和空闲连接超时时间,确保系统性能和稳定性。文章还探讨了同步阻塞、异步回调和信号量等并发控制策略,并提供了异常处理的最佳实践。最后,给出了一个简单的连接池示例代码,并推荐使用成熟的连接池框架(如HikariCP、C3P0)以简化开发。
90 2
|
4月前
|
前端开发 安全 Java
Java技术深度探索:构建高效稳定的企业级应用
【10月更文挑战第5天】Java技术深度探索:构建高效稳定的企业级应用
59 0
|
4月前
|
前端开发 Java 数据库连接
Java技术深度探索:构建高效稳定的企业级应用
【10月更文挑战第5天】Java技术深度探索:构建高效稳定的企业级应用
42 0