ListUtil 对list拆分成固定大小的子list

ListUtil 对list拆分成固定大小的子list

首先,吐槽下.这个功能肯定应该是后台接口提供,结果我们公司那个** 非要让我做.

没办法就写了这个工具类.

有需要的请拿去不懈.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
/**
* by liuxinming
* on 18-10-11 上午8:18.
*/
public class ListUtils {
/**
* 拆分list
* @param list 要拆分的list
* @param key 每多少个拆分为一个list
* @param <T> 范型 list中的元素可以是任何对象
* @return
*/
public static <T> ArrayList<ArrayList<T>> SplitList(ArrayList<T> list, int key) {
ArrayList<ArrayList<T>> lists=new ArrayList<>();
ArrayList<T> strings = new ArrayList<>();
for (int i = 1; i <= list.size(); i++) {
strings.add(list.get(i - 1));
int remainder = i % key;
if (remainder == 0) {
ArrayList<T> strings1 = new ArrayList<>();
strings1.addAll(strings);
lists.add(strings1);
strings.clear();
} else if (i==list.size()) {
lists.add(strings);
}
}
return lists;
}
}

使用

1
2
3
4
5
6
7
8
9
10
...
ArrayList<String> list = new ArrayList();
for (int k = 0; k < 200; k++) {
list.add("第"+k+"个条目");
}
//遇到一个list有200个条目,我需要将他分成每10个一组的list
ArrayList<ArrayList<String>> lists = new ArrayList<>();//存放子list
lists.addAll(ListUtils.SplitList(list,10));