자바 를 사용 하여 하나의 List 를 재 귀적 으로 트 리 구조 사례 로 변환 합 니 다.
실제로 부자 관 계 를 가 진 list 를 트 리 구조 로 바 꾸 는 방법 으로 도 이해 할 수 있 는데 그 중에서 도 중요 한 방법 은 재 귀 하 는 것 이다!
1.실체 대상:
@Data
public class Node {
private Integer id;
private String city;
private Integer pid;
private List<Node> children;
public Node(Integer id,String city,Integer pid){
this.id = id;
this.city = city;
this.pid = pid;
}
}
2.변환 도구 종류:
public class TreeUtils {
// List
static List<Node> buildTree(List<Node> list,Integer pid){
List<Node> tree=new ArrayList<>();
for(Node node:list){
if(Objects.equals(node.getPid(),pid)){
tree.add(findChild(node,list));
}
}
return tree;
}
static Node findChild(Node node, List<Node> list){
for(Node n:list){
if(Objects.equals(n.getPid(),node.getId())){
if(node.getChildren() == null){
node.setChildren(new ArrayList<Node>());
}
node.getChildren().add(findChild(n,list));
}
}
return node;
}
public static void main(String[] args) {
Node node0=new Node(0," ",-1);
Node node1=new Node(1," ",0);
Node node2=new Node(2," ",1);
Node node3=new Node(3," ",2);
Node node4=new Node(4," ",1);
Node node5=new Node(5," ",0);
Node node6=new Node(6," ",5);
List<Node> list=new ArrayList<>();
list.add(node3);
list.add(node4);
list.add(node1);
list.add(node2);
list.add(node5);
list.add(node6);
list.add(node0);
List<Node> nodes = buildTree(list,-1);
System.out.println(JSON.toJSONString(nodes));
}
}
3.실행 결과:이렇게 해서 list 는 트 리 구조 로 성공 적 으로 바 뀌 었 습 니 다.
자바 를 사용 하여 하나의 List 를 재 귀적 으로 트 리 구조 로 전환 하 는 사례 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 자바 가 list 를 트 리 구조 로 활용 하 는 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.