java - 构建 Java 树

标签 java tree

任何人都可以为我提供一个链接,以在 java 中构建树结构(可以有多个子结构)。

最佳答案

尝试使用这样的模型。

import java.util.ArrayList;
import java.util.List;

public class Employee {

    private String id;

    private Employee manager;

    private List<Employee> directReports;

    public Employee(String id){
        this.id = id;
        this.directReports = new ArrayList<Employee>();
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public Employee getManager() {
        return manager;
    }

    public void setManager(Employee manager) {
        this.manager = manager;
    }

    public List<Employee> getDirectReports() {
        return directReports;
    }

    public void setDirectReports(List<Employee> directReports) {
        this.directReports = directReports;
    }

}

这里你肯定需要经理字段,因为它给出了谁是经理
该员工的。 directReports 字段是可选的,您可以将其保留在
仅当您想将关系建模为双向关系时,即
如果您希望每个员工也知道哪些员工报告
对他/她(意味着该员工是他/她的直接下属的经理)。

现在,根据您刚刚获得的任何输入,构建正确的员工集
对象并确保它们以正确的方式相互关联(使用
ma​​nagerdirectReports 字段)。这就是我的建议。

还创建一些创建 Employee 实例的工厂类
(这个工厂类可以是 Employee 类本身)。
在使用给定 ID 创建员工之前,请确保
首先查找它是否存在。如果存在,则重复使用
它而不是创建一个新的(因为你不想有两个或
更多具有相同 id 的 Employee 实例)。

关于java - 构建 Java 树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20826326/

相关文章:

java - 测试可观察值仅评估一次

java - Activity 没效果

java - 从包含转义字符的文件中读取文本以进行等效的编译时间

haskell - Haskell 中的折叠树函数如何工作

javascript - 通过js中的递归调用更改树结构数据中的父属性

javascript - 节点展开后树的位置

java - 不幸的是,该应用程序在 Android 中已停止工作错误

java - spring 3.1.0 Release Hibernate 4.1.2 Final - 通过注释配置数据库如何设置属性

c++ - 如何填充非线性树

database - R-Tree 中的扇出是什么?