El código Java implementa datos de clasificación de árbol de consultas recursivas

Tabla de contenido

1. Preparar datos de clasificación

2. Date cuenta

Resumir

1. Preparar datos de clasificación

Consulte el artículo anterior para conocer los datos de clasificación.

https://blog.csdn.net/weixin_58403235/article/details/129635380

2. Date cuenta

El código es el siguiente (ejemplo):

    @Autowired
    CourseMapper courseMapper;  

    @Override
    //递归查询数据
    public List<Course> selectTree(){
        //获取所有课程数据,避免循环查表 消耗大量资源
        List<Course> list = courseMapper.selectList(null);

        List<Course> collect = list.stream()
                //filter有几个匹配的就有几个列表元素
                .filter(item -> item.getParentId().equals("0"))
                .map(menu -> {
                    menu.setCourseList(getChildren(menu, list));
                    return menu;
                }).collect(Collectors.toList());
        return collect;
    }

    private List<Course> getChildren(Course root, List<Course> list) {
        List<Course> chirden = list.stream()
                .filter(item -> item.getParentId().equals(root.getId()))
                .map(menu -> {
                    menu.setCourseList(getChildren(menu, list));
                    return menu;
                }).collect(Collectors.toList());
        return chirden;
    }

prueba:

    @Test
    void testCourseService() {
        List<Course> courses = courseService.selectTree();
        //因为ParentCid为0的只有一个 所以该列表下只有一个元素
        Course course = courses.get(0);
        System.out.println(course);
    }

El resultado se muestra en la figura:

 


Resumir

En este capítulo, se implementa la operación recursiva del método java para consultar los datos de clasificación de tipo árbol. De hecho, los datos de clasificación también se pueden obtener mediante la búsqueda de tabla circular, pero la eficiencia de la búsqueda de tabla circular es demasiado baja para wow, por lo que no hay otra opción.

Supongo que te gusta

Origin blog.csdn.net/weixin_58403235/article/details/129639020
Recomendado
Clasificación