要求
給定一個(gè)列表和一個(gè)正整數(shù)K,把列表中的元素切分為給定大小的K個(gè)列表,如果元素個(gè)數(shù)少于K個(gè),則單獨(dú)為一個(gè)列表,如下所示:
給定輸入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