java 集合的等分拆分

以前进行集合的拆分,均是使用循环的方式进行进行等分,前些日子,看到有好的方式可以更简单的等分,所以就记录下来,方便后续查看,代码使用List的subList方式进行拆分,代码如下

/**
     * 将大集合拆分为小集合
     *
     * @param result
     * @param count 拆分后每个集合的等分数量
     * @return
     */
public static  List<List<String>> splitResult(List<String> result, int count) {
        // 如果集合为空或者等分数小于1,则直接返回null
        if (CollectionUtils.isEmpty(result) || count < 1 ) {
            return null;
        }
        List<List<String>> list = new ArrayList<List<String>>();
        if(result.size() <= count){
            list.add(result);
            return list;
        }
        // 使用list的subList的方法进行分割
        // 获得等分个数
        int size = result.size() / count;
        // 等分之后,还剩余多少个
        int remain = result.size() % count;
        for (int i = 0 ; i < size ; i ++){
            int from = i * count;
            int to = (i + 1 ) * count;
            list.add(result.subList(from, to));
        }
// 如果有余数,则额外处理
        if (remain > 0){
            list.add(result.subList((result.size() - remain),result.size()));
        }
        return list;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值