package org.ccnt.med.body;

import java.util.ArrayList;
import java.util.List; public class Node { // 叶子节点
public final static String TYPE_LEAF = "leaf"; // 有子节点的节点
public final static String TYPE_NODE = "node"; // 节点键值
private String org_code; // 节点名称
private String org_name; // 节点状态
private String status; // 节点类型
private String org_type; // 父节点值
private String parent_code; // 子节点数组
private Node[] childNodes; /**
* 转换列表为数组
*
* @param NodeList
* @return
*/
public static Node[] listToArray(List<Node> NodeList) {
Node[] nodes = null;
if (NodeList != null) {
nodes = new Node[NodeList.size()];
for (int i = 0; i < NodeList.size(); i++) {
nodes[i] = (Node) NodeList.get(i);
}
}
return nodes;
} /**
* 判断是否是有子节点的节点
*
* @return
*/
public boolean isNode() {
if (this.getChildNodes() != null && this.getChildNodes().length > 0) {
return true;
} else {
return false;
}
} /**
* 判断是否是叶子节点
*
* @return
*/
public boolean isLeaf() {
return !isNode();
} /**
* 根据列表设置当前节点的子节点
*/
public void filterChildNodes(Node[] nodes) {
List<Node> list = new ArrayList<Node>();
Node tempNode = new Node();
for (int i = 0; i < nodes.length; i++) {
tempNode = nodes[i];
if ("root".equals(tempNode.getParent_code())
&& this.getOrg_code() == null) {
list.add(tempNode);
} else {
if (!"root".equals(tempNode.getParent_code())
&& this.getOrg_code() != null) {
if (tempNode.getParent_code().equals(this.getOrg_code())) {
list.add(tempNode);
}
}
}
} this.setChildNodes(listToArray(list));
} public String getOrg_code() {
return org_code;
} public void setOrg_code(String org_code) {
this.org_code = org_code;
} public String getOrg_name() {
return org_name;
} public void setOrg_name(String org_name) {
this.org_name = org_name;
} public String getStatus() {
return status;
} public void setStatus(String status) {
this.status = status;
} public String getOrg_type() {
return org_type;
} public void setOrg_type(String org_type) {
this.org_type = org_type;
} public String getParent_code() {
return parent_code;
} public void setParent_code(String parent_code) {
this.parent_code = parent_code;
} public Node[] getChildNodes() {
return childNodes;
} public void setChildNodes(Node[] childNodes) {
this.childNodes = childNodes;
} public static String getTYPE_LEAF() {
return TYPE_LEAF;
} public static String getTYPE_NODE() {
return TYPE_NODE;
}
}

java构建树用的Node的更多相关文章

  1. java实现树的一般操作

    https://www.cnblogs.com/dawnyxl/p/9047437.html 树是数据结构中最基本的结构,今天的博客更新一下树的基本操作: 树的节点结构: package tree; ...

  2. t-io Java构建p2p网络

    Java 构建p2p网络 这篇文章是一篇关于pbft算法实现的一篇补充文章,但是在这里不会涉及pbft的算法方面,所以可以当做一篇单独的文章食用.如果想查看关于区块链或者PBFT算法的文章,可以参考一 ...

  3. java遍历树(深度遍历和广度遍历

    java遍历树如现有以下一颗树:A     B          B1               B11          B2               B22     C          C ...

  4. Java Build Path(Java 构建路径)

    Java构建路径用于在编译Java项目时找到依赖的类,包括以下几项: 源码包 项目相关的 jar 包及类文件 项目引用的的类库 我们可以通过使用 Java 项目属性对话框中的 Java Build P ...

  5. Gradle 笔记——Java构建入门

    Gradle是一个通用的构建工具,通过它的构建脚本你可以构建任何你想要实现的东西,不过前提是你需要先写好构建脚本的代码.而大部分的项目,它们的构建流程基本是一样的,我们不必为每一个工程都编写它的构建代 ...

  6. java集合树状结构及源码

    java集合树状结构及源码 最近一直想看一下java集合的源码,毕竟平时用的比较多,但总是感觉是跟着习惯new出来一个对象,比如ArrayList,HashMap等等,所以就简单的看了一下,了解了一下 ...

  7. 闽江学院软件学院2016级JAVA构建之法-学生自学兴趣小组招募通知

    为提升我2016级学生提升JAVA软件开发学习氛围,鼓励更多同学通过自学.团队学习.在线(社区)学习等方式学习并掌握JAVA课程,尤其是鼓励同学们通过微软中国邹欣老师所倡导的"构建之法&qu ...

  8. 004_Gradle 笔记——Java构建入门

    Gradle是一个通用的构建工具,通过它的构建脚本你可以构建任何你想要实现的东西,不过前提是你需要先写好构建脚本的代码.而大部分的项目,它 们的构建流程基本是一样的,我们不必为每一个工程都编写它的构建 ...

  9. Eclipse Java 构建路径

    Eclipse Java 构建路径 设置 Java 构建路径 Java构建路径用于在编译Java项目时找到依赖的类,包括以下几项: 源码包 项目相关的 jar 包及类文件 项目引用的的类库 我们可以通 ...

随机推荐

  1. 移植opencv到pcDuino

    OpenCV是一个基于(开源)发行的跨平台计算机视觉库,可以运行在Linux.Windows和Mac OS操作系统上.它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Pytho ...

  2. MVC 5 视图之公用代码

    一.公共模板 1.@RenderBody() 在网站公用部分通过一个占位符@RenderBody()来为网站独立部分预留一个位置.然后私有页面顶部通过@{Layout="公用模板路径&quo ...

  3. 2017年要学习的三个CSS新特性

    这是翻译的一篇文章,原文是:3 New CSS Features to Learn in 2017,翻译的不是很好,如有疑问欢迎指出. 新的一年,我们有一系列新的东西要学习.尽管CSS有很多新的特性, ...

  4. PyQt4将窗口放在屏幕中间

    以下脚本显示了将窗口放在屏幕中间位置的方法. #!/usr/bin/python # -*- coding:utf-8 -*- import sys from PyQt4 import QtGui c ...

  5. jdbc批处理

    批量处理允许将相关的SQL语句分组到批处理中,并通过对数据库的一次调用来提交它们,一次执行完成与数据库之间的交互. 一次向数据库发送多个SQL语句时,可以减少通信开销,从而提高性能. 不需要JDBC驱 ...

  6. JZOJ.5287【NOIP2017模拟8.16】最短路

    Description

  7. jquery中的each

    $.each(Array, function(i, value) { this;                                    //this指向当前元素 i;          ...

  8. .net asp 在1.asp页面嵌入另一个页面2.asp

    <iframe src="http://www.baidu.com" width="100%" height="100%" onloa ...

  9. 爬虫实战【3】Python-如何将html转化为pdf(PdfKit)

    前言 前面我们对博客园的文章进行了爬取,结果比较令人满意,可以一下子下载某个博主的所有文章了.但是,我们获取的只有文章中的文本内容,并且是没有排版的,看起来也比较费劲... 咋么办的?一个比较好的方法 ...

  10. 交换机工作原理、MAC地址表、路由器工作原理详解

    一:MAC地址表详解 说到MAC地址表,就不得不说一下交换机的工作原理了,因为交换机是根据MAC地址表转发数据帧的.在交换机中有一张记录着局域网主机MAC地址与交换机接口的对应关系的表,交换机就是根据 ...