`
DavyJones2010
  • 浏览: 154930 次
  • 性别: 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删除

    Prediction-Machines-The-Simple-Economics-of-Artificial-Intelligence

    Prediction-Machines-The-Simple-Economics-of-Artificial-Intelligence

    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数据格式,可以创建带有复选框...

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

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

    simpletree

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

    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开发中一个实用的工具。

    jquery simple tree

    **jQuery Simple Tree 知识点详解** `jQuery Simple Tree` 是一个基于 jQuery 库开发的交互式树型目录组件,它允许用户通过简单的 HTML 和 JavaScript 代码创建具有拖放功能的树状结构。这个组件在网页应用中尤其...

    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...

Global site tag (gtag.js) - Google Analytics