无限分类递归java
时间: 2023-10-14 14:03:46 浏览: 40
在Java中实现无限分类递归可以使用递归函数来实现。下面是一个简单的示例代码:
```java
public class RecursiveCategory {
// 定义一个分类类
static class Category {
String name;
List<Category> subCategories;
public Category(String name, List<Category> subCategories) {
this.name = name;
this.subCategories = subCategories;
}
}
// 递归打印分类及其所有子分类
public static void printCategories(Category category, int level) {
for (int i = 0; i < level; i++) {
System.out.print("--");
}
System.out.println(category.name);
if (category.subCategories != null) {
for (Category subCategory : category.subCategories) {
printCategories(subCategory, level + 1);
}
}
}
public static void main(String[] args) {
// 创建分类对象
Category laptop = new Category("Laptop", null);
Category windows = new Category("Windows", null);
Category mac = new Category("Mac", null);
Category linux = new Category("Linux", null);
Category os = new Category("Operating System", Arrays.asList(windows, mac, linux));
Category programming = new Category("Programming", null);
Category java = new Category("Java", null);
Category python = new Category("Python", null);
Category languages = new Category("Programming Languages", Arrays.asList(java, python));
// 构建分类层次结构
laptop.subCategories = Arrays.asList(os);
programming.subCategories = Arrays.asList(languages);
// 打印分类层次结构
printCategories(laptop, 0);
printCategories(programming, 0);
}
}
```
以上代码实现了一个简单的无限分类递归示例。它定义了一个`Category`类,每个类别可以有多个子类别。通过递归函数`printCategories`可以打印出分类及其所有子分类。在`main`方法中创建了一些分类对象,并构建了分类的层次结构,最后通过调用`printCategories`方法打印出分类层次结构。你可以根据自己的需求进行修改和扩展。