Java 等分数组
RAE2,816人阅读
将一个数组分割成相等的数组。
如将1234567等分以3个为一组等分,结果为[123]、[456]、[7]
实现算法如下
/**
* 等分数组
* @param source 来源
* @param size 切分数量
* @param <T> 类型
* @return 等分后的结果
*/
public static <T> List<List<T>> divide(List<T> source, int size) {
if (size <= 0) {
throw new IllegalArgumentException("等分大小必须大于0");
}
if (source == null || source.size() <= 0) {
return null;
}
List<List<T>> result = new ArrayList<>();
int cursor = 0;
int total = source.size();
while (cursor < total) {
int index = Math.min(cursor + size, total);
List<T> item = source.subList(cursor, index);
result.add(item);
cursor = index;
}
return result;
}
评论 | 0 条评论