kotlin: chunked函数,分块

一,功能

chunked() 方法接收一个整数参数表示块的大小,并返回一个由列表组成的列表,
每个子列表的大小为指定值。
如果最后一组不足块大小,也会照样返回。
还可以传入一个 lambda 表达式对每个块进行转换。

二,例子

代码:

        //处理按钮点击事件
        binding.button1.setOnClickListener {
            val list = listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

            // 每3个为一组进行分块
            println(list.chunked(3))
            // 输出:[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]

            // 每3个为一组,将每组求和
            println(list.chunked(3) { it.sum() })
            // 输出:[6, 15, 24, 10]

            // 每3个为一组,将每组转换成字符串
            println(list.chunked(3) { it.joinToString() })
            // 输出:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
        }

运行结果:

image

三,例子

代码:

        //处理按钮点击事件
        binding.button2.setOnClickListener {
            //我们得到一个字符串数组
            val test = listOf("AA", "AB", "CC", "DD", "EE", "GF", "GG")
            //将集合拆分指定的大小的块 例如 长度3
            println(test.chunked(3)) //[[AA, AB, CC], [DD, EE, GF], [GG]]
            //将集合拆分成块,长度3,然后在块内按首字母做分组
            println(test.chunked(3) { it.groupBy { v -> v.first() } })
            //[{A=[AA, AB], C=[CC]}, {D=[DD], E=[EE], G=[GF]}, {G=[GG]}]
        }

运行结果:

image

 

posted @ 2025-08-23 09:20  刘宏缔的架构森林  阅读(7)  评论(0)    收藏  举报