java数组拆分多个子数组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java数组拆分多个子数组相关的知识,希望对你有一定的参考价值。

这里做个java集合/数组拆分多个子集合/数组的两种实现方式的笔记。


方式 一:

/**
 * 拆分集合
 * @param datas
 * @param splitSize
 * @param <T>
 * @return
 */
private <T> List<List<T>> spliceArrays(List<T> datas, int splitSize) {
    if (datas == null || splitSize < 1) {
        return  null;
    }
    int totalSize = datas.size();
    //获取要拆分子数组个数
    int count = (totalSize % splitSize == 0) ?
            (totalSize / splitSize) : (totalSize/splitSize+1);

    System.out.println("split count = " +count);

    List<List<T>> rows = new ArrayList();
    for (int i = 0;i < count;i ++) {

        int index = i * splitSize;
        List<T> cols = new ArrayList();
        int j = 0;
        while (j < splitSize && index < totalSize) {
            cols.add(datas.get(index++));
            j ++;
        }
        rows.add(cols);
    }
    return rows;
}


方式二:

/**
 * 拆分集合
 * @param datas
 * @param splitSize
 * @param <T>
 * @return
 */
private <T> List<List<T>> spliceArrays(List<T> datas, int splitSize) {
    if (datas == null || splitSize < 1) {
        return  null;
    }
    int totalSize = datas.size();
    int count = (totalSize % splitSize == 0) ?
            (totalSize / splitSize) : (totalSize/splitSize+1);

    List<List<T>> rows = new ArrayList<>();

    for (int i = 0; i < count;i++) {

        List<T> cols = datas.subList(i * splitSize,
                (i == count - 1) ? totalSize : splitSize * (i + 1));
        rows.add(cols);
        System.out.println(cols);
    }
    return rows;
}


本文出自 “CocosDev” 博客,请务必保留此出处http://xuzhiwei.blog.51cto.com/978424/1740417

以上是关于java数组拆分多个子数组的主要内容,如果未能解决你的问题,请参考以下文章

如何使用分隔符数组在 Java 中使用多个分隔符拆分字符串? [复制]

如何在java中将二维数组拆分为多个不同大小的二维数组

Java:将按字符串长度排序的字符串数组按字符串长度拆分为多个数组

数组拆分

如何将一个数组拆分成多个固定长度的数组

按子字符串拆分字符串并将其放入数组bash