java list分页

用list分页时会遇到一个问题:用户先选好页码,再传条件查询的时候,会导致查询的那一页有可能什么都没有。这时候我们给他当前查询的最后一页的内容会比较友好。

        int pageSize; //用户查询的每页多少条
        int pageNo;   //用户查询的页数
        List list;    //数据库查询结果

        int offset = (pageNo-1)*pageSize;
        int total = list.size();
        int limit = total - offset;

        if(list!=null && total>0){
            //查询当页无数据,需要显示最后一页的内容
            if(limit<=0){
                offset = total%pageSize==0?(total/pageSize)-1*pageSize:total/pageSize*pageSize;
                list.subList(offset, total);
            //正常查询,查询当页有数据
            }else{
                limit = pageSize > limit ? limit : pageSize;
                list.subList(offset, offset + limit);
            }
        }