我有一个 2000多长度的数组,我要分割成40个50长度的子数组,怎么实现 ?
问题补充:
我需要的结果是这样的: 把这个数组 int[] sum = {0,1,2,3,4,5,……,18}; 分成 int[] a = {0,1,2,3,4}; //长度5 int[] b = {5,6,7,8,9}; //长度5 int[] c = {10,11,12,13,14}; //长度5 int[] d = {15,16,17,18}; //长度4
import java.util.ArrayList;
import java.util.List;
public class ABC {
public static void main(String[] args) {
int[] ary = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18};//要分割的数组
int splitSize = 5;//分割的块大小
Object[] subAry = splitAry(ary, splitSize);//分割后的子块数组
for(Object obj: subAry){//打印输出结果
int[] aryItem = (int[]) obj;
for(int i = 0; i < aryItem.length; i++){
System.out.print(aryItem[i] + ", ");
}
System.out.println();
}
}
private static Object[] splitAry(int[] ary, int subSize) {
int count = ary.length % subSize == 0 ? ary.length / subSize: ary.length / subSize + 1;
List<List<Integer>> subAryList = new ArrayList<List<Integer>>();
for (int i = 0; i < count; i++) {
int index = i * subSize;
List<Integer> list = new ArrayList<Integer>();
int j = 0;
while (j < subSize && index < ary.length) {
list.add(ary[index++]);
j++;
}
subAryList.add(list);
}
Object[] subAry = new Object[subAryList.size()];
for(int i = 0; i < subAryList.size(); i++){
List<Integer> subList = subAryList.get(i);
int[] subAryItem = new int[subList.size()];
for(int j = 0; j < subList.size(); j++){
subAryItem[j] = subList.get(j).intValue();
}
subAry[i] = subAryItem;
}
return subAry;
}
}
------------------
0, 1, 2, 3, 4,
5, 6, 7, 8, 9,
10, 11, 12, 13, 14,
15, 16, 17, 18,