1.由栈方法
- 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());
- }
- }
- }
- }
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.递归法
- 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;
- }
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折叠树
-
-
$(".categoryName").click( function() {
-
var level = $(this).parent().attr("level");
- var isHide;
-
$(this).parent().nextAll("tr").each(function(){
-
var thisLevel = $(this).attr("level");
-
if(thisLevel <= level) {
-
return false;
- }
-
if(isHide == null) {
-
if($(this).is(":hidden")){
-
isHide = true;
-
} else {
-
isHide = false;
- }
- }
-
if( isHide) {
-
$(this).show();
-
} else {
-
$(this).hide();
- }
- });
- });
分享到:
相关推荐
使用纯java代码遍历文件夹,生成一个文件夹目录结构的目录树。 及返回一个包含有 id(文件夹id) fid(当前文件夹父目录文件夹id) name (文件/文件夹路径)的集合对象。可根据这个结果传到前台,通过jquery.ztree 或是...
该代码可以通过运行main函数自动生成表结构包括表名字段和注释,现在生成的是txt版本后期会跟改成生成word或者Excel格式,请持续关注
将Dir.class放在任意需要遍历的文件目录,直接命令窗口运行java Dir生成Dir.txt文件
根据文件path列表,自动生成包含的path文件路径,用于项目增量打包非常方便,自动创建目录结构。
java eclipse 插件 按照目录结构生成的目录树
有时候我们需要操作文件夹里面的一些文件,需要保存目录结构,生成一个副本文件夹,过滤自己需要的类型文件进行操作,同时也保存其它类型...生成目录结构很是麻烦,我这里写了一个样例,里面有源码及jar可执行程序包。
使用java程序写作一个像windows目录结构一样的目录。原创
根据word文档目录结构生成对应的序号,代码是一个demo,可以根据导入系统的word文档解析后根据导入文档的目录结构生成对应的序号
将word中的目录结构树提取出来放到html的左侧并生成相应的树目录,在html中点击树目录时整个页面可以跳到对应的位置
生成可拖拽的树状结构,节点可以通过拖拽移动,插入 很帅啊.
借鉴了网上各位大牛分享的md转html,有前端小伙伴的帮忙,共同研发出了一个小工具,将markdown文档转换成html,左右结构,左侧目录,右侧文档 请先阅读readme
根据Java模板及建表SQL脚本,由程序JframeClass.exe自动生成Java的Model及Controller类源代码文件,轻松实现J2EE 的MVC架构开发。 生成后类文件功能视模板类而定,本程序包中的自带的模板类含有如下方法及功能: 1、...
一键生成java三层代码、数据库设计文档、接口对接文档(dao、entity、mapper、service、controller),一键启动非常适合偷懒的各位
包含了使用的jar包,以及一个Java类,实现了使用Java对多目录多层级的文件进行打包,以及对ZIP包进行解压缩的操作。
3)src.main 包下有三个文件夹,Java文件夹很明显,是Java文件相关。 resources文件夹是 配置相关的文件夹,包括spring相关配置,Mybatis相关配置,数据库相关配置,redis相关配 置都在此文件夹下,webapp文件夹下...
生成这样的目录结构: C:\Users\Administrator\Desktop\新建文件夹\src>recipe.py -f . src `-- com `-- pyc `-- zxm |-- CanEnter.java |-- CanEnterResponse.java |-- ExtensionMapper.java |-- ...
Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥...
自己修改成功的java代码+js动态生成目录树结构
# java实现对文件的各种操作的工具类 ## 可以实现的操作有: 1.... 2.... 3.... 4.... 5. 新建目录 ... 6.... 7.... 8.... 9.... 10.... 11. 列出指定目录下的所有文件对象 ... 将指定目录下的所有文件构造成树结构 15. 获取文件或文件夹的大小
xjad2.2和java decompile都是java反编译工具,都能对jar包进行反编译。xjad反编译后生成目录结构,但是不提供jar编辑窗口,java decompile却可以在其窗口中查看目录和java文件。各有侧重。