Java 实现构建树 和分割List

/**
* 两层循环实现建树
*
* @param treeNodes 传入的树节点列表
* @return
*/

   public static List<TreeNode> bulid(List<TreeNode> treeNodes) {

        List<TreeNode> trees = new ArrayList<TreeNode>();

        for (TreeNode treeNode : treeNodes) {

            if ( "0".equals(treeNode.getParentId())) {
                trees.add(treeNode);
            }

            for (TreeNode it : treeNodes) {
                if (it.getParentId().equals(treeNode.getId()) ) {
                    if (treeNode.getChildren() == null) {
                        treeNode.setChildren(new ArrayList<TreeNode>());
                    }
                    treeNode.getChildren().add(it);
                }
            }
        }
        return trees;
    }
public class HandleListTools {
    /**
     * 定义分批次入库的数量
     */
    public static final int BATCH_NUMBER = 20;

    /**
     * 拆分list
     *
     * @param listSize
     * @param originalList
     */
    public static List<List<?>> splitList(int listSize, List<?> originalList) {
        List<List<?>> targetList = new ArrayList<List<?>>();
        // 拆分list
        int count = listSize / BATCH_NUMBER;
        int mod = listSize % BATCH_NUMBER;
        for (int i = 0; i < count; i++) {
            List<?> subList = originalList.subList(i * BATCH_NUMBER, (i + 1) * BATCH_NUMBER);
            targetList.add(subList);
        }
        if (mod != 0) {
            List<?> subList = originalList.subList(count * BATCH_NUMBER, (count * BATCH_NUMBER + mod));
            targetList.add(subList);
        }
        return targetList;
    }

}

版权声明:本文为zhangdongnihao原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。