按指定大小分割List的一种算法

按指定大小分割List的一种算法。直接贴代码了,至于应用场景留给大家自己去思考。

public static List<List<?>> splitList(List<?> list, int len) {
    if (list == null || list.size() == 0 || len < 1) {
        return null;
    }
    List<List<?>> result = new ArrayList<List<?>>();

    int size = list.size();
    int count = (size + len - 1) / len;

    for (int i = 0; i < count; i++) {
        List<?> subList = list.subList(i * len, ((i + 1) * len > size ? size : len * (i + 1)));
        result.add(subList);
    }
    return result;
}