Java中一个List分割为多个List
Java中一个List分割为多个List
public class ListUtil {
/**
* 将list分成多份list
*
* @param list list对象
* @param num 每份的数量
* @return List<List < T>>
*/
public static <T> List<List<T>> splitList(List<T> list, Integer num) {
int listSize = list.size();
ArrayList<List<T>> objects1 = new ArrayList<>();
int n = 0;
for (int i = 0; i < listSize / num; i++) {
ArrayList<T> objects = new ArrayList<>();
for (; n < num * (i + 1); n++) {
objects.add(list.get(n));
}
objects1.add(objects);
}
//处理余数问题
int a = listSize % num != 0 ? listSize % num : 0;
for (int i = 0; i < a; i++) {
ArrayList<T> objects = new ArrayList<>();
for (; n < num * (listSize / num) + a; n++) {
objects.add(list.get(n));
}
if (!CollectionUtils.isEmpty(objects)) {
objects1.add(objects);
}
}
return objects1;
}
public static void main(String[] args) {
ArrayList<String> strings = new ArrayList<>();
strings.add("张");
strings.add("三");
strings.add("丰");
strings.add("在");
strings.add("武");
strings.add("当");
strings.add("山");
//按每2个数据作为一个list分割
List<List<String>> lists = splitList(strings, 2);
for (List<String> list : lists) {
System.out.println(list);
}
}
}
下一篇:
用七段数码管显示26个字母的方案
