Java遍历多叉树结构数据,并做一些操作

  • 预备数据

class Job{
    private String jobName;
    private String id;
    private List<Job> children;

    public String getJobName() {
        return jobName;
    }

    public void setJobName(String jobName) {
        this.jobName = jobName;
    }

    public String getId() {
        return id;
    }

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

    public List<Job> getChildren() {
        return children;
    }

    public void setChildren(List<Job> children) {
        this.children = children;
    }

    @Override
    public String toString() {
        return "Job{" +
                "jobName='" + jobName + '\'' +
                ", id='" + id + '\'' +
                ", children=" + children +
                '}';
    }
    class ID{
        private String id;
        private String Name;
    }
}

  Job job1 = new Job();
        job1.setId("1866755618819268610");
        job1.setJobName("交通运输类");

        Job job21 = new Job();
        job21.setId("1878703410967080962");
        job21.setJobName("软件程序员");

        Job job211 = new Job();
        job211.setId("18787034109670809621");
        job211.setJobName("java开发工程师");
        List<Job> job211List = new ArrayList<>(); job211List.add(job211);

        job21.setChildren(job211List);
        Job job22 = new Job();
        job22.setId("1878703410967080961");
        job22.setJobName("软件程序员2");

        List<Job> jobs1List = new ArrayList<>();
        jobs1List.add(job21);
        jobs1List.add(job22);
        Job job2 = new Job();
        job2.setId("1878703289839775746");
        job2.setJobName("技术类");
        job2.setChildren(jobs1List);

        Job job31 = new Job();
        job31.setId("1866755703804256258");
        job31.setJobName("操作人员");

        Job job32 = new Job();
        job32.setId("1866755723286798338");
        job32.setJobName("文员");

        List<Job> jobs2List = new ArrayList<>();
        jobs2List.add(job31);
        jobs2List.add(job32);
        Job job3 = new Job();
        job3.setId("1866755645134331906");
        job3.setJobName("体力劳动类");
        job3.setChildren(jobs2List);

        List<Job> list = new ArrayList<>();
        list.add(job2); list.add(job3); list.add(job1);
  • 遍历
    private static void getName(List<Job> list, String name){
        for (Job job : list) {
            String id = job.getId();
            if ("".equals(name)){
                name = "/" + job.getJobName();
            }else {
                name += "/" + job.getJobName();
            }

            if (job.getChildren() == null){
                map.put(id, name);
                name = name.substring(0, name.lastIndexOf("/"));
                id = "";
            }else {
                getName(job.getChildren(), name);
                name = name.substring(0, name.lastIndexOf("/"));
            }
        }
    }
  •  调用
getName(list, "");

  

posted @ 2025-03-03 21:21  TIME_小白  阅读(15)  评论(0)    收藏  举报