List集合等长分割为多个List

今天在mybatis做批量插入操作的时候要考虑一个问题,就是在集合长度达到200的时候操作一次批量插入,因为数据太多对于mysql会有压力,所以就对集合做了一个分片功能,话不多说,上代码;

 /**
     *
     * @param sourceList  原集合
     * @param subListSize 分割后子集合长度
     * @param <T>
     * @return 以Map格式存放的子list集合 key是第几段 value是子集合
     */
    public static <T> Map<Integer, List<T>> splitList(List<T> sourceList, int subListSize) throws Exception {
        if(CollectionUtils.isEmpty(sourceList)){
            throw new Exception("source list can not be null!");
        }
        if(subListSize <= 0){
            throw new Exception("sub list size can not be zero!");
        }
        if(sourceList.size() < subListSize){
            throw new Exception("sub list list size can not be longer than source size!");
        }
        //集合长度
        int size = sourceList.size();
        //分片数
        int segment
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值