java中最常用的数据结构类型是Map和List,
它们也是Container的两种基本模式,一个是根据特征值定位,一个是根据地址定位。
它们共同的一个特征是表达了数据之间的直接的,短程的一种相关性。另一种常见的数据结构Tree则表达了数据之间的一种长程的关联:根节点与其所有层次上
的子节点之间都存在着关联。 文件系统,组织机构, XML文档等都可以对应为Tree数据结构。在描述树形结构的时候,我们经常使用XML文件,
但是XML文件在程序中操纵起来并不方便,这其中的一个重要原因是XML是面向文档的,即操纵XML的API返回的和使用的都只能是文本字符串,而不能直
接使用程序中常见的其他数据结构。在witrix平台中操纵Tree结构的标准接口是TreeNode类,它的设计是面向应用的,即节点的属性值为
Object类型而不是String类型。
Tree由三部分组成: 属性,值, 子节点
class TreeNode implements IVariant{
List getChildren();
int getChildCount();
TreeNode child(int index);
/** 当name对应的节点不存在时将会自动创建该节点 */
TreeNode child(String name);
/** 当name对应的节点不存在时返回null */
TreeNode existingChild(String name);
Map getAttributes();
IVariant attribute(String name);
void setAttribute(String name, Object attrValue);
}
TreeNode.attribute(name)返回的是IVariant接口,例如
boolean defaultValue = true;
boolean b = node.child("subA").attribute("attrB").booleanValue(defaultValue);
TreeNode本身也是IVariant接口的一个实现,例如
int i = ode.intValue();
通过使用IVariant接口,我们实现了强类型的java语言与弱类型的xml文本之间的自然转换,在转换过程中还可以指定缺省值,这些都极大的简化了实际应用时的编码量。
分享到:
相关推荐
在这个“leetcodetreenode-TreeNode”项目中,我们关注的是与二叉树相关的LeetCode挑战。二叉树是一种基本的数据结构,它的每个节点最多有两个子节点,通常分为左子节点和右子节点。 二叉树在计算机科学中有着广泛...
For educational purpose.Graphic TreeNode:Operations:-MakeTree-DeleteTree-InsertNode-DeleteNode-SearchNode
django-treenode 可能是基于树的东西的最佳抽象模型/管理员。 产品特点 快速ancestors , children , descendants , parent , root , siblings ,无查询tree 同步-内存中的模型实例会自动更新 兼容性-您可以...
For educational purpose.Graphic TreeNode:Operations:-MakeTree-DeleteTree-InsertNode-DeleteNode-SearchNode
扩展WPF的TreeView,完成数据绑定和拖拽功能。 WPF看了很长时间了,但一直没怎么动手实践,正好任务需要,扩展了WPF的标准TreeView控件,并作为基础控件,支持下面的功能: 数据绑定 拖拽
### C# TreeNode 控件使用详解 #### 一、概述 在C#的Windows Forms或Web Forms应用程序开发过程中,经常会遇到需要展示层次结构数据的情况。这时,`TreeNode`控件便显得尤为重要。`TreeNode`控件是`TreeView`控件...
当创建或添加`TreeNode`时,可以通过设置`TreeNode`的`ImageIndex`和`SelectedImageIndex`属性来关联图片。这两个属性分别表示节点默认状态和选中状态时显示的图片索引。 ```csharp TreeNode node = new TreeNode...
TreeNode ,左侧面板显示三级目录, int sublen = taskht.Keys.Count;//三级目录长度 int len = webht.Keys.Count; //二级目录长度 System.Windows.Forms.TreeNode treeRootNode = new System.Windows.Forms....
在这个“TreeView Treenode 操作实例”中,我们将深入探讨如何操作`TreeNode`,包括从数据库读取数据、构建类别树、将树结构写回数据库以及处理节点重命名以避免重复。 首先,让我们了解`TreeView`的基本操作。`...
在MFC环境下① 与ListView控件相关的类:ColumnHeaderCollection,ListViewItem,ListView控件的成员:ColumnHeaderCollection,Items...主要成员:Item1,Item TreeNode:TreeView 的节点类型。clsTree:树类型的设计
本文将深入探讨如何使用RichFaces的`<rich:treeNode>`标签来开发动态树形结构视图。这个标签是RichFaces框架中的一个重要组成部分,常用于构建层次化的数据展示。 首先,让我们理解`<rich:treeNode>`的基本概念。它...
class TreeNode: def __init__(self, value): self.value = value self.left = None self.right = None 然后,你可以使用这个节点类来构建二叉树。构建二叉树通常有两种方式:手动创建或使用递归函数。 ...
TreeNode: TTreeNode; begin // 创建根节点 TreeNode := TreeView1.Items.Add(nil, 'Root'); // 添加子节点 TreeNode := TreeNode.AddChild(nil, 'Child 1'); TreeNode := TreeNode.AddChild(nil, 'Child 2'...
TreeNode是树结构中的基本元素,代表树中的一个节点,它包含了自身的数据以及指向子节点的引用。在这个"treenode enhancement"项目中,开发者对网络上找到的源码进行了改进,以满足特定的需求,比如获取子节点和找出...
Base types treenode: Create a flat list of nodes containing all base types instead of just the direct base types Bug fixes Fix #2050: Ref local variable is inlined incorrectly, changing the exception ...
而TreeNode是Windows Forms中的控件,主要用于构建TreeView控件的层次结构。在本主题中,我们将深入探讨如何在VB中结合VSFlexGrid和TreeNode来实现一种特定的效果。 首先,让我们了解这两个关键组件的基本概念: 1...
Slice2TreeNode: []interface{} -> *model.TreeNode TreeNode2Slice: *model.TreeNode -> []interface{} 工具包 lckit 是一个帮助创建 leetcode 代码模板的工具 安装 go get github.com/zhai3516/leetcode-tools go ...
以下是一个简单的Python代码示例:pythonCopy codeclass TreeNode: def __init__(self, value): self.value = value self.left = None self.right = None def print_tree(root, depth=0, prefix="Root: "): if root ...
以下是一个简单的Python代码示例:pythonCopy codeclass TreeNode: def __init__(self, value): self.value = value self.left = None self.right = Nonedef print_tree(root, depth=0, prefix="Root: "): if root ...
class TreeNode: def __init__(self, val=0, left=None, right=None): self.val = val self.left = left self.right = right ``` 然后,我们使用队列来实现层次遍历: ```python from collections import ...