자바 재 귀 를 이용 하여 분류 트 리 예제 코드 구현
그렇다면 이런 종류의 나 무 는 어떻게 이 루어 졌 을 까?말 이 많 지 않 으 면 바로 코드 를 입력 하 세 요.
1.우선 상품 분류 표를 새로 만 들 고 필요 한 데 이 터 를 유지 합 니 다.
2.상품 유형 실체 만 들 기
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(" ")
public class OrdersCategory implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = " ")
@TableId(value = "id", type = IdType.ASSIGN_ID)
private Integer catId;
@ApiModelProperty(value = " ")
private String name;
@ApiModelProperty(value = " id")
private Integer parentCid;
@ApiModelProperty(value = " ")
private Integer catLevel;
@ApiModelProperty(value = " [0- ,1 ]")
private Integer showStatus;
@ApiModelProperty(value = " ")
private Integer sort;
@ApiModelProperty(value = " ")
private String icon;
@ApiModelProperty(value = " ")
private String productUnit;
@ApiModelProperty(value = " ")
private String productCount;
}
3.카 테 고리 트 리 만 들 기
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(" ")
public class OrdersCategoryVo extends OrdersCategory implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = " ")
List<OrdersCategoryVo> childrenCategoryList;
}
4.재 귀 논리 코드 작성
/**
*
* @return
*/
@Override
public List<OrdersCategoryVo> getCategoryTree() {
//
List<OrdersCategoryVo> entityList = categoryMapper.getCategoryTreeAll();
// . stream api
List<OrdersCategoryVo> firstEntityList = entityList.stream()
.filter(categoryVo -> categoryVo.getParentCid().intValue() == 0)
.map((menu) -> {
// , ,
menu.setChildrenCategoryList( getChildrens(menu,entityList));
return menu;
} ).collect(Collectors.toList());
return firstEntityList;
}
/**
*
* @param root id
* @param all
* @return
*/
private List<OrdersCategoryVo> getChildrens(OrdersCategoryVo root, List<OrdersCategoryVo> all) {
List<OrdersCategoryVo> childrenList = all.stream()
.filter(categoryVo -> categoryVo.getParentCid().intValue() == root.getCatId().intValue())
.map(categoryVo -> {
// , ,
categoryVo.setChildrenCategoryList(getChildrens(categoryVo, all));
return categoryVo;
}).collect(Collectors.toList());
return childrenList;
}
논리 실현 에 대해 코드 에 주석 이 있 습 니 다.여기 서 사례 중의 stream 의 몇 가지 방법 을 간단하게 말씀 드 리 겠 습 니 다.stream().filter:필터,조건 에 따라 집합 요 소 를 걸 러 냅 니 다.
stream().map:맵,집합 에 있 는 요 소 를 조작 하고 새로운 요 소 를 되 돌려 줍 니 다.
stream().collect(Collectors.toList()):작업 이 끝나 고 stream 흐름 이 저장 되 지 않 기 때문에 작업 이 끝 난 후의 집합 을 되 돌려 야 합 니 다.
5.전단 에 Element 의 트 리 컨트롤 렌 더 링 데 이 터 를 사용 합 니 다.
<template>
<el-tree :data="data" :props="defaultProps" @node-click="handleNodeClick"></el-tree>
</template>
<script>
import { getCategoryTree } from '@/api/category'
export default {
data() {
return {
data: [],
defaultProps: {
children: 'childrenCategoryList',
label: 'name'
}
}
},
created() {
this.getData();
},
methods: {
handleNodeClick () {
},
getData() {
getCategoryTree()
.then(response => {
this.data = response.data.data.list
})
.catch(() => {
this.data = []
})
}
}
6.프로젝트 시작 효과 보기초학 전단,비교적 간단하게..............................................................
자바 재 귀 를 이용 하여 카 테 고리 트 리 를 실현 하 는 글 은 여기까지 소개 되 었 습 니 다.더 많은 자바 재 귀 실현 카 테 고리 트 리 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.