/** * 分割数组 * * @param array 原数组 * @param Size 分割后每个数组的最大长度 * @param <T> 原数组的类型 * @return */ public static <T> List<Object[]> splitArray(T[] array, int Size) { List<Object[]> list = new ArrayList<Object[]>(); int i = (array.length) % Size == 0 ? (array.length) / Size : (array.length) / Size + 1; for (int j = 0; j < i; j++) { List<T> list1 = new ArrayList<T>(); for (int k = 0; k < Size; k++) { if ((j * Size + k) >= array.length) { break; } else { list1.add((array[j * Size + k])); } } /** * list.toArray()之后只能转成Object类型的数组,不能转成int和Integer等 * 否则会报:java.lang.ClassCastException: * [Ljava.lang.Object; cannot be cast to [Ljava.lang.Integer; * 非检测性异常 * 所以只能是List<Object[]>,不能是List<T[]> */ list.add(list1.toArray()); } return list; }