要求
给定一个列表和一个正整数K,把列表中的元素切分为给定大小的K个列表,如果元素个数少于K个,则单独为一个列表,如下所示:
给定输入1,2,3,4,5,6,7,8,K = 4,输出(1,2,3)(4,5,6)(7,8)
public class SplitList {
public static void main(String[] args) {
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8);
List<List<Integer>> lists = splitList(list, 3);
System.out.println(lists);
}
private static List<List<Integer>> splitList(List<Integer> list,int k) {
List<List<Integer>> result = new ArrayList<>();
int div = list.size() / k;
for(int i = 1;i <= div;i++) {
List<Integer> tmpList = new ArrayList<>();
for(int j = (i-1) * k;j < i * k; j++) {
tmpList.add(list.get(j));
}
result.add(tmpList);
}
List<Integer> tmpList = new ArrayList<>();
for(int i = div * k;i < list.size();i++) {
tmpList.add(list.get(i));
}
if(tmpList.size() > 0) {
result.add(tmpList);
}
return result;
}
}

image.png