treehelper.java

来自「以前做的一个j2ee的项目」· Java 代码 · 共 88 行

JAVA
88
字号
package gov.gdlt.ssgly.taxweb.mbean.qxgl;

import java.util.ArrayList;
import java.util.Vector;

public class TreeHelper {
    public TreeHelper() {
    }

    public static ArrayList convertData(ArrayList voData) {
        ArrayList result = null;
        Vector v = null;
        TreeNodeObject treeNode = null;

        for (int i = 0; i < voData.size(); i++) {
            NodeValueObject vo = (NodeValueObject) voData.get(i);
            //根节点的上级编号为null,或"",或0
            if (vo.getParentId() == null || vo.getParentId().equals("") ||
                vo.getParentId().equals("0")) {
                if (result == null) {
                    result = new ArrayList();
                }
                /**保存信息对象*/
                //ArrayList infoData = new ArrayList();
                treeNode = new TreeNodeObject(vo, null);
                /**保存本结点的子结点对象*/
                //ArrayList nodeData = new ArrayList();
                /**保存本结点*/
                //infoData.add(vo.getID());
                //infoData.add(vo.getName());
                ArrayList tmp = findNextNodeVO(voData, vo.getId());
                if (tmp != null) {
                    v = new Vector();
                    treeNode.setChildNodes(v);
                    for (int j = 0; j < tmp.size(); j++) {
                        v.add(tmp.get(j));
                    }
                }
                result.add(treeNode);
            }
        }
        return result;
    }

    /**
     * 递归构造子结点
     * 递归找寻以父结点ID为参数的结点并加入到一个ArrayList中
     * @param voData 寻找的ArrayList范围
     * @param id 指定ID查找
     * @return 返回父结点为指定ID的结点集合
     */
    private static ArrayList findNextNodeVO(ArrayList voData, String id) {
        ArrayList result = null;
        TreeNodeObject treeNode = null;
        Vector v = null;

        for (int i = 0; i < voData.size(); i++) {
            NodeValueObject vo = (NodeValueObject) voData.get(i);
            if (vo.getParentId() != null && vo.getParentId().equals(id)) {
                if (result == null) {
                    result = new ArrayList();
                }
                /**保存信息对象*/
                //ArrayList infoData = new ArrayList();
                treeNode = new TreeNodeObject(vo, null);
                /**保存本结点的子结点对象*/
                //ArrayList nodeData = new ArrayList();
                /**保存本结点*/
                //ArrayList allData = new ArrayList();
                //infoData.add(vo.getID());
                //infoData.add(vo.getName());
                ArrayList tmp = findNextNodeVO(voData, vo.getId());
                if (tmp != null) {
                    v = new Vector();
                    treeNode.setChildNodes(v);
                    for (int j = 0; j < tmp.size(); j++) {
                        v.add(tmp.get(j));
                    }
                }
                result.add(treeNode);
            }
        }
        return result;
    }


}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?