帮我用Java代码写一下
时间: 2023-08-28 14:16:22 浏览: 41
好的,以下是使用Java代码实现递归查询当前分类及子分类的数据的示例:
```java
import java.util.ArrayList;
import java.util.List;
public class Category {
private int id;
private int parentId;
private String name;
// 构造函数
public Category(int id, int parentId, String name) {
this.id = id;
this.parentId = parentId;
this.name = name;
}
// Getter和Setter方法省略
// 递归查询当前分类及子分类的数据
public static List<Category> queryCategoryData(int categoryId, List<Category> categories) {
List<Category> result = new ArrayList<>();
for (Category category : categories) {
if (category.getId() == categoryId) {
result.add(category);
List<Category> subCategories = queryCategoryData(category.getId(), categories);
result.addAll(subCategories);
}
}
return result;
}
// 示例代码
public static void main(String[] args) {
// 创建分类数据集合
List<Category> categories = new ArrayList<>();
categories.add(new Category(1, 0, "电子产品"));
categories.add(new Category(2, 1, "手机"));
categories.add(new Category(3, 1, "电脑"));
categories.add(new Category(4, 2, "苹果"));
categories.add(new Category(5, 2, "三星"));
categories.add(new Category(6, 3, "戴尔"));
categories.add(new Category(7, 3, "华为"));
// 查询分类及子分类的数据
List<Category> result = queryCategoryData(1, categories);
for (Category category : result) {
System.out.println(category.getName());
}
}
}
```
在上面的示例代码中,我们定义了一个Category类,包含了id、parentId和name等属性,以及一个静态的queryCategoryData方法来递归查询当前分类及子分类的数据。在main方法中,我们创建了一个分类数据集合,并调用queryCategoryData方法来查询分类及子分类的数据。最后,输出查询结果中的分类名称。