对于代码中常有每一千条数据插入数据库或者每一千条数据调用数据查询、业务逻辑处理或者调用其他服务等等操作,提供一接口 以供抽取 固定大小的List对象遍历代码的方法

package com.test.common.utils;

import java.util.ArrayList;
import java.util.List;

/**
 * @ClassName Paging
 * @Description Paging
 * @Author zhaozhang
 * @Date 2023/5/8 15:13
 * @param <T> 泛型
 * @Version 1.0
 */
public interface Paging<T> {
    int NUM = 1000;

    /**
     * 业务代码
     * @param list
     */
    void run(List<T> list);

    /**
     * 分页执行业务
     * @param list 参数
     */
    default void  doing(List<T> list) {
        List<T> tmp = new ArrayList<>();
        for (T t : list) {
            tmp.add(t);
            if (tmp.size() == NUM) {
                run(tmp);
                tmp.clear();
            }
        }
        if (tmp.size() > 0) {
            run(tmp);
        }
    }
}

调用该接口使用方法示例

List<String> idList = new ArrayList<>();
idList.add("https://www.cnblogs.com/zzgeren/p/17390857.html");
((Paging<String>) list -> System.out.println(list) ).doing(idList );

 

posted on 2023-05-11 14:01  glucose  阅读(11)  评论(0编辑  收藏  举报