前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Kotlin 实现内存分页完整源代码

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

作者头像
一个会写诗的程序员
发布2019-06-22 14:15:40
1.1K0
发布2019-06-22 14:15:40
举报
代码语言:javascript
复制
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++
                    } else {
                        break
                    }
                } else {
                    break
                }
            }

        } else {
            data = list
        }

        // 每页大小
        page.pageSize = pageSize
        // 总页数
        page.totalPage = totalPage
        // 总数
        page.totalCount = totalCount
        // 当前页
        page.currentPage = currentPage
        // 当前页的数据
        page.data = data

        return page
    }

}

class Page<T> {
    var currentPage: Int = 1
    var pageSize: Int = 10
    var totalPage: Int = 10
    var totalCount: Int = 10
    var data: MutableList<T> = mutableListOf()
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.06.21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档