列表切分

要求

给定一个列表和一个正整数K,把列表中的元素切分为给定大小的K个列表,如果元素个数少于K个,则单独为一个列表,如下所示:
给定输入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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容