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


object PageHelper {

    /**
     * 对一个列表进行分页
     * @param list 列表
     * @param currentPage 当前页,从1开始
     * @param pageSize 每页数量
     */
    fun  page(list: MutableList, currentPage: Int, pageSize: Int): Page {
        val page = Page()
        var data: MutableList = 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 {
    var currentPage: Int = 1
    var pageSize: Int = 10
    var totalPage: Int = 10
    var totalCount: Int = 10
    var data: MutableList = mutableListOf()
}

Kotlin 开发者社区

国内第一Kotlin 开发者社区公众号,主要分享、交流 Kotlin 编程语言、Spring Boot、Android、React.js/Node.js、函数式编程、编程思想等相关主题。
Kotlin 实现内存分页完整源代码_第1张图片
Kotlin 开发者社区 QRCode.jpg

你可能感兴趣的:(Kotlin 实现内存分页完整源代码)