All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.liuyehcf.framework.common.tools.collection.SplitUtils Maven / Gradle / Ivy

The newest version!
package com.github.liuyehcf.framework.common.tools.collection;

import com.github.liuyehcf.framework.common.tools.asserts.Assert;
import com.google.common.collect.Lists;

import java.util.List;

/**
 * @author hechenfeng
 * @date 2019/9/15
 */
public abstract class SplitUtils {

    public static  List> split(List list, int segmentSize) {
        Assert.assertNotNull(list);
        Assert.assertTrue(segmentSize > 0);

        final List> segments = Lists.newArrayList();

        int left = 0, right = Math.min(segmentSize, list.size());

        while (right < list.size()) {
            final List segment = Lists.newArrayList(list.subList(left, right));

            left = right;

            if (right + segmentSize < list.size()) {
                right += segmentSize;
            } else {
                right = list.size();
            }

            segments.add(segment);
        }

        segments.add(Lists.newArrayList(list.subList(left, right)));

        return segments;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy