java生成目录结构

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());
}
}
}
}



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;
}


[b]js折叠树[/b]

// 树折叠
$(".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();
}
});
});
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值