src/main/java/studio/baxia/fo/common/TreeInfoUtil.java

(开头部分) 3KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

package studio.baxia.fo.common;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by Pan on 2016/10/15.
 * TreeInfo工具类
 */
public class TreeInfoUtil {

    /**
     * 将List<? extends TreeInfo>转换成TreeInfoResult
     * @param treeInfos 实现了TreeInfo的类的集合形式
     * @return TreeInfoResult
     */
    public static TreeInfoResult convertToTreeInfoResult(List<? extends TreeInfo> treeInfos,TreeInfo rootTreeInfo) {
        TreeInfoResult treeRootInfoResult = new TreeInfoResult(rootTreeInfo);
        List<TreeInfoResult> treeRootInfoResultChildrens = new ArrayList<TreeInfoResult>();
        List<TreeInfo> restTreeInfos = new ArrayList<TreeInfo>();
        if(rootTreeInfo==null){
            for (int i = 0; i < treeInfos.size(); i++) {
                TreeInfo treeInfo = treeInfos.get(i);
                if (treeInfo.getParentId() == CommonConstant.MESSAGE_DEFAULT_PARENT_ID) {
                    treeRootInfoResultChildrens.add(new TreeInfoResult(treeInfo));
                } else {
                    restTreeInfos.add(treeInfo);
                }
            }
        }else{
            for (int i = 1; i < treeInfos.size(); i++) {
                TreeInfo treeInfo = treeInfos.get(i);
                if (treeInfo.getParentId() == rootTreeInfo.getId()) {
                    treeRootInfoResultChildrens.add(new TreeInfoResult(treeInfo));
                } else {
                    restTreeInfos.add(treeInfo);
                }
            }
        }
        getChildrenTree(treeRootInfoResultChildrens, restTreeInfos);
        treeRootInfoResult.setChildrens(treeRootInfoResultChildrens);
        return treeRootInfoResult;
    }

    private static void getChildrenTree(List<TreeInfoResult> treeInfoResultChildrens, List<TreeInfo> treeInfos) {
        List<TreeInfo> restTreeInfos;
        for (int i = 0; i < treeInfoResultChildrens.size(); i++) {
            TreeInfoResult treeInfoResult = treeInfoResultChildrens.get(i);
            if (treeInfoResult != null) {
                int parentId = treeInfoResult.getData().getId();
                List<TreeInfoResult> treeInfoChildrens = new ArrayList<TreeInfoResult>();
                restTreeInfos = new ArrayList<>();
                for (int j = 0; j < treeInfos.size(); j++) {
                    TreeInfo treeInfo = treeInfos.get(j);
                    if (treeInfo.getParentId() == parentId) {
                        treeInfoChildrens.add(new TreeInfoResult(treeInfo));
                    } else {
                        restTreeInfos.add(treeInfo);
                    }
                }
后面还有 23 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。