`

java生成目录结构

    博客分类:
  • java
阅读更多

1.由栈方法

Java代码 复制代码 收藏代码
  1. class MenuSort {   
  2.         private List<SysConstants> list = null;   
  3.         final String TOP_CODE = "005001036";   
  4.   
  5.         public MenuSort(List<SysConstants> list) {   
  6.             this.list = list;   
  7.         }   
  8.   
  9.         /*  
  10.          * 排序  
  11.          */  
  12.         public List <SysConstants> sort() {   
  13.             if (list != null && !list.isEmpty()) {   
  14.                 List <SysConstants> values = new ArrayList<SysConstants>(list.size());   
  15.                 Map<String, List<SysConstants>> bucket = in();                 
  16.                 out(values, bucket, TOP_CODE);   
  17.                 return values;   
  18.             }   
  19.             return null;   
  20.         }   
  21.   
  22.         /*  
  23.          * 入桶  
  24.          */  
  25.         private Map<String, List<SysConstants>> in() {   
  26.             Map<String, List<SysConstants>> bucket = new LinkedHashMap<String, List<SysConstants>>(list.size());   
  27.             for (SysConstants obj : list) {   
  28.                 String parentCode = obj.getLev().equals(1) ? TOP_CODE : obj.getParentCode();   
  29.                 List<SysConstants> parentList = bucket.get(parentCode);   
  30.                 if (parentList != null) {   
  31.                     parentList.add(obj);   
  32.                 } else {   
  33.                     parentList = new ArrayList<SysConstants>();   
  34.                     parentList.add(obj);   
  35.                     bucket.put(parentCode, parentList);   
  36.                 }   
  37.             }   
  38.             return bucket;   
  39.         }   
  40.   
  41.         /*  
  42.          * 出桶  
  43.          */  
  44.         private void out(List <SysConstants> values, Map<String, List<SysConstants>> bucket, String node) {   
  45.             List<SysConstants> nodes = bucket.get(node);   
  46.             if(nodes != null && nodes.size() > 0){   
  47.                 for (SysConstants obj : nodes) {   
  48.                     values.add(obj);   
  49.                     out(values, bucket, obj.getCode());   
  50.                 }   
  51.             }   
  52.         }   
  53.     }  
class MenuSort {
		private List<SysConstants> list = null;
		final String TOP_CODE = "005001036";

		public MenuSort(List<SysConstants> list) {
			this.list = list;
		}

		/*
		 * 排序
		 */
		public List <SysConstants> sort() {
			if (list != null && !list.isEmpty()) {
				List <SysConstants> values = new ArrayList<SysConstants>(list.size());
				Map<String, List<SysConstants>> bucket = in();				
				out(values, bucket, TOP_CODE);
				return values;
			}
			return null;
		}

		/*
		 * 入桶
		 */
		private Map<String, List<SysConstants>> in() {
			Map<String, List<SysConstants>> bucket = new LinkedHashMap<String, List<SysConstants>>(list.size());
			for (SysConstants obj : list) {
				String parentCode = obj.getLev().equals(1) ? TOP_CODE : obj.getParentCode();
				List<SysConstants> parentList = bucket.get(parentCode);
				if (parentList != null) {
					parentList.add(obj);
				} else {
					parentList = new ArrayList<SysConstants>();
					parentList.add(obj);
					bucket.put(parentCode, parentList);
				}
			}
			return bucket;
		}

		/*
		 * 出桶
		 */
		private void out(List <SysConstants> values, Map<String, List<SysConstants>> bucket, String node) {
			List<SysConstants> nodes = bucket.get(node);
			if(nodes != null && nodes.size() > 0){
				for (SysConstants obj : nodes) {
					values.add(obj);
					out(values, bucket, obj.getCode());
				}
			}
		}
	}



2.递归法

Java代码 复制代码 收藏代码
  1. private List<ProductCategory> recursivProductCategoryTreeList(List<ProductCategory> allProductCategoryList, ProductCategory p, List<ProductCategory> temp) {   
  2.         if (temp == null) {   
  3.             temp = new ArrayList<ProductCategory>();   
  4.         }   
  5.         for (ProductCategory productCategory : allProductCategoryList) {   
  6.             ProductCategory parent = productCategory.getParent();   
  7.             if ((p == null && parent == null) || (productCategory != null && parent == p)) {   
  8.                 temp.add(productCategory);   
  9.                 if (productCategory.getChildren() != null && productCategory.getChildren().size() > 0) {   
  10.                     recursivProductCategoryTreeList(allProductCategoryList, productCategory, temp);   
  11.                 }   
  12.             }   
  13.         }   
  14.         return temp;   
  15. }  
private List<ProductCategory> recursivProductCategoryTreeList(List<ProductCategory> allProductCategoryList, ProductCategory p, List<ProductCategory> temp) {
		if (temp == null) {
			temp = new ArrayList<ProductCategory>();
		}
		for (ProductCategory productCategory : allProductCategoryList) {
			ProductCategory parent = productCategory.getParent();
			if ((p == null && parent == null) || (productCategory != null && parent == p)) {
				temp.add(productCategory);
				if (productCategory.getChildren() != null && productCategory.getChildren().size() > 0) {
					recursivProductCategoryTreeList(allProductCategoryList, productCategory, temp);
				}
			}
		}
		return temp;
}


js折叠树

Java代码 复制代码 收藏代码
  1. // 树折叠   
  2.     $(".categoryName").click( function() {   
  3.         var level = $(this).parent().attr("level");   
  4.         var isHide;   
  5.         $(this).parent().nextAll("tr").each(function(){   
  6.             var thisLevel = $(this).attr("level");   
  7.             if(thisLevel <=  level) {   
  8.                 return false;   
  9.             }   
  10.             if(isHide == null) {   
  11.                 if($(this).is(":hidden")){   
  12.                     isHide = true;   
  13.                 } else {   
  14.                     isHide = false;   
  15.                 }   
  16.             }   
  17.             if( isHide) {   
  18.                 $(this).show();   
  19.             } else {   
  20.                 $(this).hide();   
  21.             }   
  22.         });   
  23.     });  
分享到:
评论

相关推荐

    java 生成文件结构目录树

    使用纯java代码遍历文件夹,生成一个文件夹目录结构的目录树。 及返回一个包含有 id(文件夹id) fid(当前文件夹父目录文件夹id) name (文件/文件夹路径)的集合对象。可根据这个结果传到前台,通过jquery.ztree 或是...

    自动打包生成目录结构工具

    总的来说,"自动打包生成目录结构工具"是软件开发中的利器,它结合了Java等编程语言提供的文件操作功能,实现了对项目文件的智能化管理和打包。通过这样的工具,开发者可以更专注于核心业务逻辑,而不用过于担心项目...

    java生成树型结构

    - 文件系统:目录结构可以看作一棵树,每个目录是节点,文件是叶子节点。 - 搜索引擎:倒排索引使用B树或B+树存储词项和文档ID的关系。 - 数据库索引:如MySQL中的InnoDB引擎使用B+树作为索引结构。 7. **面试题...

    java遍历文件目录生成树结构txt文件

    在Java编程中,遍历文件目录并生成树结构的文本文件是一个常见的任务,尤其是在处理大量文件数据时。这个任务可以通过使用Java的`java.io.File`类及其相关API来实现。`Dir.class`和`Dir.java`是这次操作的核心文件,...

    Java自动生成Mysql数据库结构

    "Java自动生成Mysql数据库结构"这个主题,就是关于如何利用编程语言自动化处理数据库设计的一部分。这个功能可以帮助开发者快速地创建数据库文档,减少手动编写SQL脚本和设计模式的时间。 首先,我们要理解这个代码...

    java 多个pdf合并,目录生成(支持自定义目录),页码生成(源码)

    在Java开发中,有时我们需要处理多个PDF文档,例如将它们合并成一个文件或者为合并后的文件生成目录和页码。这个任务通常出现在报告生成、文档整合等场景中。本项目提供了一个纯Java实现的解决方案,它能有效地完成...

    java动态生成目录树

    在Java开发中,动态生成目录树是一项常见的任务,特别是在构建Web应用时,为了方便用户浏览和管理层次结构的数据。在这个场景中,我们使用了Dtree这个JavaScript库来辅助实现这一功能,并结合Ajax技术以JSON和XML两...

    java eclipse 插件 按照目录结构生成的目录树

    通过上述组件的组合,"java eclipse 插件 按照目录结构生成的目录树"提供了一个高效的工作环境,使开发者能够在复杂的项目中快速定位并管理代码。这个插件不仅提高了开发效率,还提升了代码的可维护性和组织性。

    itext 生成pdf 目录

    本篇文章将深入探讨如何使用iText来生成PDF的目录。 首先,理解PDF目录的基本结构至关重要。PDF目录通常由一系列层次化的书签构成,每个书签对应文档中的一个部分、章节或子章节。在iText中,这些书签是通过`...

    遍历文件夹自动生成目录树

    在IT领域,遍历文件夹并自动生成目录树是一项常用的任务,特别是在文件管理、数据整理以及自动化脚本编写中。这个过程通常涉及到操作系统层面的文件系统操作,编程语言中的文件I/O(输入/输出)以及目录结构的表示。...

    根据word文档目录结构生成对应的序号.java

    根据word文档目录结构生成对应的序号,代码是一个demo,可以根据导入系统的word文档解析后根据导入文档的目录结构生成对应的序号

    Java保存目录结构批量复制

    有时候我们需要操作文件夹里面的一些文件,需要保存目录结构,生成一个副本文件夹,过滤自己需要的类型文件进行操作,同时也保存其它类型...生成目录结构很是麻烦,我这里写了一个样例,里面有源码及jar可执行程序包。

    Java 使用iText7生成带页码的PDF文件(同时生成目录,但是不会合并两个PDF)

    4. 创建目录,你需要在每个章节或部分添加书签,然后在最后生成目录。`PdfOutline`对象用于创建书签,`PdfDocument.addOutlines(outlines)`添加到PDF中。 5. 关闭Document和PdfDocument,确保所有内容都已写入。 ...

    java生成xsd,xml示例

    在Java开发中,XML(可扩展...总结起来,Java生成XML和XSD涉及到XML和XSD的基本概念,以及使用JAXB等Java库进行XML操作的技术。在实际项目中,理解并熟练运用这些知识对于处理结构化数据的序列化和反序列化至关重要。

    java生成rtf文档,跟word文档差不多

    Java生成RTF文档是编程领域中一个常见的需求,尤其在自动化报告、数据导出或集成办公软件功能时。RTF(Rich Text Format)是一种通用格式,可以被多种文字处理程序如Microsoft Word支持,使得文件在不同平台间具有...

    itext操作word生成目录、页码、表格、插入图片

    最后,使用iText生成目录,这通常涉及到遍历文档,查找书签并根据标题级别生成相应的目录条目。 2. **设置页码**: 页码的设置可以通过Apache POI直接完成。你可以为每个节(section)设置不同的页码格式,并且...

    java生成二维码并保存到本地

    在Java编程环境中,生成二维码并将其保存到本地是一项常见的任务,尤其在移动...总的来说,Java生成二维码的过程涉及到编码、图像处理和文件操作等多个环节。理解这些步骤有助于我们在项目中灵活地生成和使用二维码。

    java 生成树形文件目录

    在Java编程中,生成树形文件目录是一项常见的任务,它涉及到文件系统操作和数据结构的知识。这个任务的主要目的是创建一个程序,能够以树状结构显示计算机中的文件和目录,类似于Windows资源管理器中的视图。这里...

    java转目录树json

    在Java开发中,将目录结构转换为JSON格式是一种常见的需求,特别是在构建文件管理系统、Web应用或者需要在前端展示树形目录结构时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和...

    电子合同-Java生成电子签章

    在"电子合同-Java生成电子签章"项目中,Spring Boot被用作核心框架,负责整个系统的运行环境和依赖管理。开发者可以通过编写微服务的方式来实现电子签章的功能模块。 接着,我们来看看Java电子签章的实现。电子签章...

Global site tag (gtag.js) - Google Analytics