Bootstrap

Java中如何将List拆分为多个小list集合

写在前面:
我是「境里婆娑」。我还是从前那个少年,没有一丝丝改变,时间只不过是考验,种在心中信念丝毫未减,眼前这个少年,还是最初那张脸,面前再多艰险不退却。
写博客的目的就是分享给大家一起学习交流,如果您对 Java感兴趣,可以关注我,我们一起学习

前言:在平常写代码时候可能会遇到需要将一个大list拆分多个小list,进行一些业务处理。

一、如何将List拆分为多个小list

如何将List拆分多个小list,首先我们需要list.sublist这个方法如何使用。
list.sublist(int fromIndex, int toIndex)方法有两个参数。
fromIndex:为起始索引(包含)
toIndex:为终止索引(不包含)的子列表(List)

但值得注意的是,返回的这个子列表的幕后其实还是原列表;也就是说,修改这个子列表,将导致原列表也发生改变;反之亦然。

具体实现试下:

public static <T> List<List<T>> splistList(List<T> list,int subNum) {
        List<List<T>> tNewList = new ArrayList<List<T>>();
        int priIndex = 0;
        int lastPriIndex = 0;
        int insertTimes = list.size()/subNum;
        List<T> subList = new ArrayList<>();
        for (int i = 0;i <= insertTimes;i++) {
            priIndex = subNum*i;
            lastPriIndex = priIndex + subNum;
            if (i == insertTimes) {
                subList = list.subList(priIndex,list.size());
            } else {
                subList = list.subList(priIndex,lastPriIndex);
            }
            if (subList.size() > 0) {
                tNewList.add(subList);
            }
        }
        return tNewList;
    }

测试代码如下:

public static void main(String[] args) {
        List<String> list = Arrays.asList("1","2","3","4","5","6","7","8","9");
        List<List<String>> lists = splistList(list, 4);
        System.out.println(lists.size());
    }

输出结果:lists size is:3

;