怎么写级联list接口
时间: 2023-03-30 15:03:40 浏览: 53
可以使用递归的方式实现级联list接口,具体实现方法可以参考以下代码:
```
public class Category {
private Long id;
private String name;
private List<Category> children;
// getter and setter methods
public void addChild(Category child) {
if (children == null) {
children = new ArrayList<>();
}
children.add(child);
}
public static List<Category> buildCategoryTree(List<Category> categories) {
Map<Long, Category> categoryMap = new HashMap<>();
List<Category> rootCategories = new ArrayList<>();
// 将所有分类按照id存储到Map中
for (Category category : categories) {
categoryMap.put(category.getId(), category);
}
// 遍历所有分类,将子分类添加到父分类的children中
for (Category category : categories) {
Long parentId = category.getParentId();
if (parentId != null) {
Category parentCategory = categoryMap.get(parentId);
if (parentCategory != null) {
parentCategory.addChild(category);
}
} else {
rootCategories.add(category);
}
}
return rootCategories;
}
}
```
以上代码中,Category类表示一个分类,包含id、name和children三个属性,children表示子分类。buildCategoryTree方法接收一个分类列表,返回一个根分类列表。在方法中,首先将所有分类按照id存储到Map中,然后遍历所有分类,将子分类添加到父分类的children中,最后返回根分类列表。