List内置分页sublist

时间:2021-05-28 19:04:49

//================将数据分页==============

   //查询后的数据集合,该对象同样用户截取后的数据集合

   Listobj= newArrayList();

   //数据总数

   int totalCount = 155;

   //总的页数

   int pageCount = 0;

   //每页显示的总数

   int endNum = 20;

   //当前页码

   int startNum = 1;

   /*计算出总共能分成多少页*/

   if (totalCount % endNum> 0){

      pageCount = totalCount / endNum + 1;

   }else{ //数据总数和每页显示的总数能整除的情况

      pageCount = totalCount / endNum;

   }

   if(totalCount > 0){

      if(startNum <=pageCount){

         if(startNum == 1){

            if(totalCount <=endNum){//数据总数小于每页显示的数据条数

               //截止到总的数据条数(当前数据不足一页,按一页显示),这样才不会出现数组越界异常

                obj= obj.subList(0, totalCount);

            }else{

                obj= obj.subList(0, endNum);

            }

         }else{

            //截取起始下标

            int fromIndex = (startNum -1) * endNum;

            //截取截止下标

            int toIndex = startNum *endNum;

            /*计算截取截止下标*/

            if ((totalCount - toIndex)% endNum >= 0){

                toIndex= startNum * endNum;

            }else{

                toIndex= (startNum - 1) * endNum + (totalCount % endNum);

            }

            if (totalCount >=toIndex){

                obj= obj.subList(fromIndex, toIndex);

            }

         }

      }else{

         obj= null;

      }