자바 가 트 리 를 List 로 변환

1.수요,관련 속성 이 없 는 트 리(id 와 pid 가 없 음)를 list 로 저장(id 와 pid 를 통 해 연결)
2.사고,이 곳 은 넓 은 트 리 를 통 해 list 를 얻 을 수 있 습 니 다.깊이 를 사용 하면 pid 는 정확 한 값 을 얻 지 못 합 니 다.
3.나무의 구 조 는 다음 과 같다.(id 와 pid 없 음)
public class Tree {
    private String name;
    private List children;
}

      ,  Map    (    com.alibaba.fastjson.JSONObject)         Map    

import java.util.*;
import com.alibaba.fastjson.JSONObject;

public static void main(String[] args) {
        //     Map  
        String result = Tree.toString();//    ,     String
        JSONObject jsonObject = JSONObject.parseObject(result);
        //  Map     。
        Map objectMap = JSONObject.toJavaObject(jsonObject, Map.class);
        //             id pid(  id=UUID.randomUUID().toString(),pid=0)
        objectMap.put("pid", "0");
        objectMap.put("id", UUID.randomUUID().toString());
        //       
        List> platList = breadthFirst(objectMap);
        for (Map plat : platList) {
            System.out.println(plat.toString());
        }
   }
/***
 *     List       
 * @param root
 * @return
 */
public static List> breadthFirst(Map root) {
    List> lists = new ArrayList<>();
    if (root == null) {
        return lists;
    }
    Queue> queue = new LinkedList<>();
    queue.offer(root);
    while (!queue.isEmpty()) {
        Map tree = queue.poll();
        String pid = (String) tree.get("id");
        List> children = (List>) tree.get("children");
        for (Map child : children) {
            child.put("pid", pid);
            child.put("id", UUID.randomUUID().toString());
            queue.offer(child);
        }
        Map plat = new HashMap<>();
        plat.put("name", tree.get("name"));
        plat.put("pid", tree.get("pid"));
        plat.put("id", tree.get("id"));
        lists.add(plat);
    }
    return lists;
}

이로써 전환 이 완료 되 었 다.

좋은 웹페이지 즐겨찾기