list集合均分n个集合的两种方法


/**

* 将一个list均分成n个list,主要通过偏移量来实现的

*

* @param

* @return

*/

public static List>createList(List targe, int size) {

List> listArr =new ArrayList>();

    //获取被拆分的数组个数

    int arrSize = targe.size() % size ==0 ? targe.size() / size : targe.size() / size +1;

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

List sub =new ArrayList();

        //把指定索引数据放入到list中

        for (int j = i * size; j <= size * (i +1) -1; j++) {

if (j <= targe.size() -1) {

sub.add(targe.get(j));

            }

}

listArr.add(sub);

    }

return listArr;

}

public static List>averageAssign(List source, int n) {

List> result =new ArrayList>();

    int remaider = source.size() % n;  //(先计算出余数)

    int number = source.size() / n;  //然后是商

    int offset =0;//偏移量

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

List value =null;

        if (remaider >0) {

value = source.subList(i * number + offset, (i +1) * number + offset +1);

            remaider--;

            offset++;

        }else {

value = source.subList(i * number + offset, (i +1) * number + offset);

        }

result.add(value);

    }

return result;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 测试一下: 结果如下:
    陈煦缘阅读 4,334评论 0 2
  • 初二去姑家走亲戚,被我的一个外甥惊艳到了,在我的印象里,这是一个胖胖的男孩子,个头这两年窜得不矮,只是一直胖乎乎的...
    就无邪阅读 2,885评论 0 5
  • 一直在追中餐厅,这一次中餐厅迎来了第一季的最后一集,舍不得说再见。 喜欢中餐厅那种淡淡的、轻轻的感觉。真正热爱厨房...
    丫头yuer阅读 2,773评论 0 2
  • 唯唯诺诺仙两忧 爱恨情愁世间留 小楼亭台思伊人 玉面绫罗画萍幽
    aca1bcd5135b阅读 1,768评论 0 0
  • 当前天数:第78天。 剩余天数:22天。 参与人:我。 路程:5圈。 地点:家里小区的跑步场。 开始时间:22点2...
    Teratimes成长论阅读 1,547评论 0 0