Java将List按指定数量拆分成多个的两种实现方法

有时候我们需要将大集合按指定的数量分割成若干个小集合。(比如:集合作为SQL中IN的参数,而SQL又有长度限制,所以需要分批分几次进行查询)

1、使用google guava对List进行分割

需要引入google guava依赖,引入后可以使用,简单方便但是需要引入额外依赖


    com.google.guava
    guava
    23.0

拆分调用

 List list = new ArrayList();
//拆分list
List> partition = Lists.partition(list , 200);

2、自己手写方法实现将List拆分成N个

List list = new ArrayList();
//拆分list
List> partition = Lists.partition(list , 200);/**
     * 按指定大小,分隔集合,将集合按规定个数分为n个部分
     * 
     * @param
     * 
     * @param list
     * @param len
     * @return
     */
    public static List> splitList(List list, int len) {

        if (list == null || list.isEmpty() || len < 1) {
            return Collections.emptyList();
        }

        List> result = new ArrayList<>();

        int size = list.size();
        int count = (size + len - 1) / len;

        for (int i = 0; i < count; i++) {
            List subList = list.subList(i * len, ((i + 1) * len > size ? size : len * (i + 1)));
            result.add(subList);
        }

        return result;
    }

你可能感兴趣的:(工具,java,linq,开发语言)