文章目录
写在前面:
我是「境里婆娑」。我还是从前那个少年,没有一丝丝改变,时间只不过是考验,种在心中信念丝毫未减,眼前这个少年,还是最初那张脸,面前再多艰险不退却。
写博客的目的就是分享给大家一起学习交流,如果您对 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