zl程序教程

您现在的位置是:首页 >  后端

当前栏目

Kotlin 实现内存分页完整源代码

Kotlin内存 实现 完整 分页 源代码
2023-09-14 09:07:21 时间

class PageHelper {

    /**
     * 对一个列表进行分页
     * @param list 列表
     * @param currentPage 当前页,从1开始
     * @param pageSize 每页数量
     */
    fun <T> page(list: MutableList<T>, currentPage: Int, pageSize: Int): Page<T> {
        val page = Page<T>()
        var data: MutableList<T> = mutableListOf()

        // 手动分页
        val totalCount = list.size

        val totalPage = if ((totalCount % pageSize) > 0) {
            (totalCount / pageSize + 1)
        } else {
            (totalCount / pageSize)
        }


        // 返回当前页数据封装
        if (totalCount > pageSize) {
            // 多页
            var i = (currentPage - 1) * pageSize

            while (true) {
                if (currentPage * pageSize > i) {
                    if (i < totalCount) {
                        data.add(list[i])
                        i++