`
DavyJones2010
  • 浏览: 153807 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Java SE: A simple example of Tree

阅读更多

1. TreeOriginalNode.java

package edu.xmu.tree;

public class TreeOriginalNode
{
	private String attr1;
	private String attr2;
	private String attr3;

	private int total;

	public String getAttr1()
	{
		return attr1;
	}

	public void setAttr1(String attr1)
	{
		this.attr1 = attr1;
	}

	public String getAttr2()
	{
		return attr2;
	}

	public void setAttr2(String attr2)
	{
		this.attr2 = attr2;
	}

	public String getAttr3()
	{
		return attr3;
	}

	public void setAttr3(String attr3)
	{
		this.attr3 = attr3;
	}

	public int getTotal()
	{
		return total;
	}

	public void setTotal(int total)
	{
		this.total = total;
	}

	@Override
	public String toString()
	{
		return "TreeOriginalNode [attr1=" + attr1 + ", attr2=" + attr2
				+ ", attr3=" + attr3 + ", total=" + total + "]";
	}

}

 

2. TreeNode.java

package edu.xmu.tree;

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

public class TreeNode
{
	private String attr1;

	private int total;

	private List<TreeNode> nodeList = new ArrayList<TreeNode>();

	public TreeNode()
	{
	}

	public TreeNode(String attr1, int total)
	{
		this.attr1 = attr1;
		this.total = total;
	}

	public String getAttr1()
	{
		return attr1;
	}

	public void setAttr1(String attr1)
	{
		this.attr1 = attr1;
	}

	public void setTotal(int total)
	{
		this.total = total;
	}

	public int getTotal()
	{
		return this.total;
	}

	public List<TreeNode> getNodeList()
	{
		return nodeList;
	}

	public void setNodeList(List<TreeNode> nodeList)
	{
		this.nodeList = nodeList;
	}

	@Override
	public String toString()
	{
		return "TreeNode [attr1=" + attr1 + ", total=" + total + ", nodeList="
				+ nodeList + "]";
	}

}

 

3. TreeRoot.java

package edu.xmu.tree;

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

public class TreeRoot
{
	private List<TreeNode> levelOneList = new ArrayList<TreeNode>();

	public void addNode(TreeOriginalNode node)
	{
		if (levelOneList.isEmpty())
		{
			levelOneList.add(new TreeNode(node.getAttr1(), node.getTotal()));
			System.out.println(levelOneList.get(0));
		} else
		{
			for (Iterator<TreeNode> levelOneIter = levelOneList.iterator(); levelOneIter
					.hasNext();)
			{
				TreeNode levelOneTempNode = levelOneIter.next();
				if (levelOneTempNode.getAttr1().equals(node.getAttr1()))
				{
					int levelOneTotal = levelOneTempNode.getTotal();
					levelOneTotal += node.getTotal();
					levelOneTempNode.setTotal(levelOneTotal);

					List<TreeNode> levelTwoList = levelOneTempNode
							.getNodeList();
					if (levelTwoList.isEmpty())
					{
						System.out.println("Add node" + node
								+ " to levelTwoList");
						levelTwoList.add(new TreeNode(node.getAttr2(), node
								.getTotal()));
						System.out.println(levelTwoList.get(0));
					} else
					{
						for (Iterator<TreeNode> levelTwoIter = levelTwoList
								.iterator(); levelTwoIter.hasNext();)
						{
							TreeNode levelTwoTempNode = levelTwoIter.next();

							if (levelTwoTempNode.getAttr1().equals(
									node.getAttr2()))
							{
								int levelTwoTotal = levelTwoTempNode.getTotal();
								levelTwoTotal += node.getTotal();
								levelTwoTempNode.setTotal(levelTwoTotal);

								List<TreeNode> levelThreeList = levelTwoTempNode
										.getNodeList();

								levelThreeList.add(new TreeNode(
										node.getAttr3(), node.getTotal()));
							} else
							{
								levelTwoList.add(new TreeNode(node.getAttr2(),
										node.getTotal()));
								break;
							}
						}
					}
				} else
				{
					levelOneList.add(new TreeNode(node.getAttr1(), node
							.getTotal()));
					break;
				}
			}
		}
	}

	public List<TreeNode> getNodeList()
	{
		return levelOneList;
	}

	public void setNodeList(List<TreeNode> nodeList)
	{
		this.levelOneList = nodeList;
	}

	@Override
	public String toString()
	{
		StringBuffer sb = new StringBuffer();

		for (Iterator<TreeNode> iter = levelOneList.iterator(); iter.hasNext();)
		{
			TreeNode node = iter.next();
			sb.append(node.toString());
			sb.append("\n");
		}
		return sb.toString();
	}

}

 

4. TreeRootTest.java

package edu.xmu.tree;

import org.junit.Test;

public class TreeRootTest
{
	@Test
	public void test()
	{
		TreeRoot root = new TreeRoot();

		TreeOriginalNode node1 = new TreeOriginalNode();
		node1.setAttr1("aaa");
		node1.setAttr2("AAA");
		node1.setAttr3("111");

		TreeOriginalNode node2 = new TreeOriginalNode();
		node2.setAttr1("aaa");
		node2.setAttr2("AAA");
		node2.setAttr3("222");

		TreeOriginalNode node3 = new TreeOriginalNode();
		node3.setAttr1("aaa");
		node3.setAttr2("BBB");
		node3.setAttr3("111");

		TreeOriginalNode node4 = new TreeOriginalNode();
		node4.setAttr1("bbb");
		node4.setAttr2("AAA");
		node4.setAttr3("111");

		root.addNode(node1);
		root.addNode(node2);
		root.addNode(node3);
		root.addNode(node4);
		
		System.out.println(root);
	}
}

 

分享到:
评论

相关推荐

    perl的xml::simple解析文件

    Perl中的XML::Simple模块是Perl社区广泛使用的XML解析器,尤其适合处理小型或结构简单的XML文档。这个模块的名称虽然包含“Simple”,但它实际上提供了一种简洁的接口,用于将XML数据转换为Perl数据结构,反之亦然。...

    Modern Java Recipes Simple Solutions to Difficult Problems in Java 8 and 9 epub

    Modern Java Recipes Simple Solutions to Difficult Problems in Java 8 and 9 英文epub 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除

    jQuery插件之二:Simple Tree

    **jQuery插件:Simple Tree详解** 在Web开发中,数据的层次展示经常是必不可少的,例如目录结构、组织架构或层级菜单。为了实现这样的效果,jQuery插件Simple Tree应运而生。它提供了一个轻量级且易于使用的解决...

    Learn Python the Hard Way: A Very Simple Introduction

    You Will Learn Python!

    jQuery-simple-tree

    《jQuery-simple-tree:构建灵活的树形结构》 在网页开发中,经常需要展示层级关系的数据,例如组织架构、文件目录等,这时树形结构组件就显得尤为重要。jQuery-simple-tree是一款基于jQuery的轻量级插件,专为快速...

    扩展了一棵jquery的树插件SimpleTree(jquery.simple.tree.js),支持json数据,checkbox树,以及异步加载,

    **jQuery SimpleTree 插件详解** `jQuery SimpleTree` 是一个功能丰富的JavaScript插件,它扩展了jQuery库,为开发者提供了构建交互式树形结构的能力。这个插件特别之处在于它支持JSON数据格式,可以创建带有复选框...

    simpletree

    "SimpleTree"是一款基于jQuery的树形插件,主要用于在网页中展示层次结构的数据,例如目录结构、组织架构或者导航菜单。它通过简洁的API和丰富的定制选项,为开发者提供了在网页上创建交互式树状视图的功能。下面将...

    java源码:Java 命令行解析器 JOpt Simple.zip

    Java命令行解析器JOpt Simple是一款广泛使用的开源库,它为Java开发者提供了处理命令行参数和选项的强大工具。JOpt Simple的设计目标是简洁、易于使用,同时具备灵活性,能够处理复杂的命令行语法。这个压缩包文件...

    Character Recognition Example :Training a Simple NN for classification

    Character Recognition Example (III):Training a Simple NN for classification

    A simple example with how hybrid beamforming is employed

    A simple example with how hybrid beamforming is employed at the transmit end of a massive MIMO communications system.zip

    SimpleTree1.2一个非常好的框架树

    SimpleTree1.2是一款在JavaScript领域中广泛应用的框架树组件,尤其在网页界面设计和数据组织展示时,它提供了一种高效且灵活的方式来呈现层级结构数据。这个框架以其易用性和丰富的功能特性,赢得了开发者们的青睐...

    Java SE 6 新特性: XML API 与 Web 服务

    Java SE 6(标准版6)是Java平台的一个重要版本,它引入了许多新特性,特别是在XML API和Web服务方面。这些增强为开发人员提供了更强大、更高效的工具,以处理XML文档并构建基于Web的服务。 1. **XML API增强**: ...

    simpletree完整示例.

    1.代码中包括两种异步树加载,Default.aspx中使用json数据格式返回2.Default3使用兼容性很好的Jquery.simpletree树异步加载树,后台返回&lt;ul&gt;&lt;li&gt; html标记.可以拖拽树.且插件包很小,只包括jquery.simple.tree.css,...

    A simple example of SQL server admin tools..zip

    SQL Server管理工具的簡單示例。 處理數據; 我相信Microsoft SQL Server是管理大量數據/信息的最佳選擇。 任何與數據庫相關的應用程序開發,所有開發人員都非常熟悉Microsoft SQL Server數據庫管理系統以及服務...

    Article Analysis(AA): A Simple Framework for Contrastive Learning of Visual Representations

    A Simple Framework for Contrastive Learning of Visual Representations 作者: Ting Chen, Simon Kornblith, Mohammad Norouzi, Geoffrey Hinton 本文提出一种简洁有效的设计的无监督设计,并且以7%的margin刷新...

    json jquery simple tree 源码

    总的来说,"json jquery simple tree 源码"提供了一种高效、灵活的方法,使得jQuery Simple Tree能够利用JSON数据进行异步加载,提升了用户体验,简化了前后端的数据交互过程,是Web开发中一个实用的工具。

    simple-xml-safe-2.7.1-API文档-中文版.zip

    标签:carrotsearch、thirdparty、simple、xml、safe、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,...

    Java.Crash.Course.1541019245.epub

    "Java Crash Course" contains a multitude of tips and tricks, examples and exercises you can do to grow your Java programming skills to unprecedented levels. We chose the content of this book carefully...

    一款简单兼容性好无限树插件jquery.simple.tree(已修改)

    **jQuery.simple.tree插件详解** 在前端开发中,无限树形结构常常被用于展示层级关系的数据,例如组织架构、文件目录等。`jQuery.simple.tree`是一款简洁且兼容性良好的JavaScript插件,它允许开发者轻松地在网页上...

    深入java虚拟机(inside the java virtual machine)

    java虚拟机的运行机理的详细介绍 Inside the Java Virtual Machine Bill Venners $39.95 0-07-913248-0 Inside the Java Virtual ... Slices of Pi: A Simulation of the Java Virtual Machine Index About the Author

Global site tag (gtag.js) - Google Analytics