作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有一类Category
,具有以下(重要)属性:
public class Category{
private Integer id;
private String name;
private Category parentCategory;
private Set<Category> subcategories = new HashSet<Category>();
...
//getters and setters
}
我正在尝试实现类别/子类别概念。一个类别可以有零个或多个子类别。一个类别只能有一个父类别(可以是 null
)。对于顶级类别 parentCategory=null
.
现在,我有一个所有类别的列表,List<Category> allCategories = (retrieved from database)
.
如果我有一些类别(或 categoryId
),并且 allCategories
,如何获得给定类别的所有子类别(及其子类别)的列表?使用哪个循环?(它可以限制在子类别深度级别 3)
最佳答案
这里是一些伪代码,如果你想要更具体的解决方案,请提供结果集的详细信息。
for(all result set) {
currentCategoriesFromDb = current category;
currentCategoriesFromDb.setParentCategory() = parentCategoryId;
parentCategory.addCategory(currentCategoriesFromDb )
}
如果所有类别层次结构都已初始化并且您想导航,您可以这样做:
currentCategory.getChildByName(name1).getChildByName(name2);
如果你想递归地确定所有的东西:
printbCategories(Category category) {
print(category);
List<Category> subCategories = category.getSubCategories();
for(Category category : subCategories ) {
printbCategories(category);
}
}
关于java - 类别/子类别 : How to get all subcategories(their subcategories too) for given category?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21586835/
我是一名优秀的程序员,十分优秀!