java 数组切分

2019-11-22  本文已影响0人  蜡笔广志

之前跑批处理的时候,批量往数据库里插入数据,结果爆了内存溢出,发觉是循环的时候数组过大,因此需要把数据切分下,就此记录下该方法

    public static <T> List<List<T>> partList(List<T> source, int n) {
        if (source == null) {
            return null;
        }

        if (n == 0) {
            return null;
        }
        List<List<T>> result = new ArrayList<List<T>>();

        int size = source.size();

        int remaider = size % n;

        int number = size / n;

        for (int i = 0; i < number; i++) {
            List<T> value = source.subList(i * n, (i + 1) * n);
            result.add(value);
        }
        if (remaider > 0) {
            List<T> subList = source.subList(size - remaider, size);
            result.add(subList);
        }

        return result;
    }
上一篇 下一篇

猜你喜欢

热点阅读