1. RAE首页
  2. Android

Java 等分数组

将一个数组分割成相等的数组。
如将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;
    }

原创文章,作者:RAE,来自:https://raeblog.com,如若转载,请注明出处!

发表评论

邮箱地址不会被公开。 必填项已用*标注