JAVA中的递归是只一个方法在(满足条件时(或不满足条件时【这里的判断根据业务的实际需求写】))自己调用自己的方法名,要求参数和方法名一致,
然后根据判断跳出该方法,返回相应的返回值!
实例:
我们要展示所有的商品分类且无限阶级(表字段:id编号,parentId(父级编码))
我们根据parentId(最顶级的父级编码【在数据库初始化时自定义】)做查询
定义Category是分类的类
采用Set集合去重泛型为Category
Set<Category> setCategory= Sets.newHashSet();
recursionMethond(setCategory,parentId);
递归算法
public Set<Category> recursionMethond(Set<Category> setCategory,String parentId){
根据id获取 Category category = categoryMapper.selectByPrimaryKey(Integer.parseInt(parentId)); if(category != null){ setCategory.add(category); }
根据parentId获取 List<Category> list=categoryMapper.selectLevelingCategor(parentId); for(Category categorys :list){ recursionMethond(setCategory,String.valueOf(categorys.getId())); } return setCategory; }