Java中一个List分割为多个List
public class ListUtil {
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("山");
List<List<String>> lists = splitList(strings, 2);
for (List<String> list : lists) {
System.out.println(list);
}
}
}