码迷,mamicode.com
首页 > 编程语言 > 详细

java数组拆分多个子数组

时间:2016-02-01 19:06:46      阅读:331      评论:0      收藏:0      [点我收藏+]

标签:java sublist

这里做个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 sublist

原文地址:http://xuzhiwei.blog.51cto.com/978424/1740417

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!