java构建树用的Node
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的更多相关文章
- java实现树的一般操作
https://www.cnblogs.com/dawnyxl/p/9047437.html 树是数据结构中最基本的结构,今天的博客更新一下树的基本操作: 树的节点结构: package tree; ...
- t-io Java构建p2p网络
Java 构建p2p网络 这篇文章是一篇关于pbft算法实现的一篇补充文章,但是在这里不会涉及pbft的算法方面,所以可以当做一篇单独的文章食用.如果想查看关于区块链或者PBFT算法的文章,可以参考一 ...
- java遍历树(深度遍历和广度遍历
java遍历树如现有以下一颗树:A B B1 B11 B2 B22 C C ...
- Java Build Path(Java 构建路径)
Java构建路径用于在编译Java项目时找到依赖的类,包括以下几项: 源码包 项目相关的 jar 包及类文件 项目引用的的类库 我们可以通过使用 Java 项目属性对话框中的 Java Build P ...
- Gradle 笔记——Java构建入门
Gradle是一个通用的构建工具,通过它的构建脚本你可以构建任何你想要实现的东西,不过前提是你需要先写好构建脚本的代码.而大部分的项目,它们的构建流程基本是一样的,我们不必为每一个工程都编写它的构建代 ...
- java集合树状结构及源码
java集合树状结构及源码 最近一直想看一下java集合的源码,毕竟平时用的比较多,但总是感觉是跟着习惯new出来一个对象,比如ArrayList,HashMap等等,所以就简单的看了一下,了解了一下 ...
- 闽江学院软件学院2016级JAVA构建之法-学生自学兴趣小组招募通知
为提升我2016级学生提升JAVA软件开发学习氛围,鼓励更多同学通过自学.团队学习.在线(社区)学习等方式学习并掌握JAVA课程,尤其是鼓励同学们通过微软中国邹欣老师所倡导的"构建之法&qu ...
- 004_Gradle 笔记——Java构建入门
Gradle是一个通用的构建工具,通过它的构建脚本你可以构建任何你想要实现的东西,不过前提是你需要先写好构建脚本的代码.而大部分的项目,它 们的构建流程基本是一样的,我们不必为每一个工程都编写它的构建 ...
- Eclipse Java 构建路径
Eclipse Java 构建路径 设置 Java 构建路径 Java构建路径用于在编译Java项目时找到依赖的类,包括以下几项: 源码包 项目相关的 jar 包及类文件 项目引用的的类库 我们可以通 ...
随机推荐
- swift - 之TabBarController的用法
TabBarController的使用,下面记录两种写法,代码如下: TabBarItem系统自带图标样式(System)介绍: Custom:自定义方式,配合Selected Image来自定义图标 ...
- Unity随机Prefab,自动前往某点处理
对与U3D AI,看了下,自己做了小功能,以备后用啊! 一,在某区域随机产生某个对象 C# 文件名称为RadomAPoint.cs using UnityEngine; using System.C ...
- 微信小程序 this.setData 修改json里面的值
page({ data:{ s1:{a:"",b:"b"} }, changeData:function(e){ var cData=this.data.s1; ...
- (二)微信小程序的三种传值方式
1.全局变量 app.js里 App({ //全局变量 globalData: { userInfo: null, host: 'http://localhost:8080/data.json' } ...
- jQuery中的$.each的用法
$.each(Array,function(i,value){ this; //this指向当前对象 i; //i表示当前下标 value; //value表示当前元素 })
- 图解利用vmware工具进行虚拟机克隆
在vmware上创建一台完整的虚拟机,在该创建的虚拟机上进行克隆,先关闭创建的虚拟机,然后选中你要克隆的虚拟机,右击->管理->克隆,然后点击下一步,如下图所示: 2 然后点击下一步,如下 ...
- java基础---->多线程之synchronized(六)
这里学习一下java多线程中的关于synchronized的用法.我来不及认真地年轻,待明白过来时,只能选择认真地老去. synchronized的简单实例 一. synchronized在方法上的使 ...
- 【BZOJ2300】[HAOI2011]防线修建 set维护凸包
[BZOJ2300][HAOI2011]防线修建 Description 近来A国和B国的矛盾激化,为了预防不测,A国准备修建一条长长的防线,当然修建防线的话,肯定要把需要保护的城市修在防线内部了.可 ...
- Android动态加载ListView中的Item
我这周上网看到动态增加listview的每一项item的布局,今天抽空自己写了一个,方便自己日后使用,这个效果还是很不错的,用到了Adapter的notifyDataSetChanged()方法,当点 ...
- 解读 Android TTS 语音合成播报
随着从事 Android 开发年限增加,负责的工作项目也从应用层开发逐步过渡到 Android Framework 层开发.虽然一开始就知道 Android 知识体系的庞大,但是当你逐渐从 Appli ...