有时候因为分页条件的关系,用sql语句不能实现分页时,需要先查询符合条件的信息集合, 然后在自己用List集合实现手动分页。
方法一
代码如下:
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Test {
public static void main(String[] args) {
//所有名称集合
List<String> nameList = new ArrayList<>();
nameList.add("张三");
nameList.add("李四");
nameList.add("王五");
nameList.add("赵六");
//分页条件
int page = 2;//当前第几页
int size = 2;//每页显示条数
//分页计算
//分页返回值总条数
int count = nameList.size();
//根据页码取数据
int pageTotals = (count/size) + ((count%size > 0) ? 1 : 0);//总页数计算
List<String> contentList = new ArrayList<>();//分页内容
if (page <= pageTotals) {
int fromIndex = (page - 1) * size;
int toIndex = ((page == pageTotals) ? count : (page * size));
//list集合截取方法从某个索引到另一个索引元素
contentList = nameList.subList(fromIndex,toIndex);
}
//分页返回结果
Map<String,Object> resultMap = new HashMap<>();
resultMap.put("count",count);//总条数
resultMap.put("content",contentList);//当前页内容
System.out.println(resultMap);
}
}
方法二
代码如下:
import java.util.ArrayList;
import java.util.List;
public class Test2 {
public static void main(String[] args) {
Map<String,Object> resultMap = new HashMap<>();
List<String> queryList = new ArrayList<>();
queryList.add("1");
queryList.add("2");
queryList.add("3");
queryList.add("4");
queryList.add("5");
queryList.add("6");
queryList.add("7");
queryList.add("8");
queryList.add("9");
queryList.add("10");
queryList.add("11");
queryList.add("12");
queryList.add("13");
queryList.add("14");
queryList.add("15");
List<String> contentlist = new ArrayList<>();
int page = 1;//当前页数
int size = 10;//每页显示条数
if(queryList.size()> size){
//当查询到的大于size时
int begin = (page-1)*size;
int last = 0;
if((begin + size) >queryList.size()){
last =queryList.size();
}else{
last =begin + size;
}
for(int i=begin;i<last;++i){
String str = queryList.get(i);
contentlist.add(str);
}
System.out.println("contentlist:"+contentlist);
}else{
contentlist = queryList;
System.out.println("queryList:"+queryList);
}
resultMap.put("count",queryList.size());//总条数
resultMap.put("content",contentlist);//当前页内容
}
}
参考博客:https://blog.csdn.net/winfredzen/article/details/52104251?depth_1-utm_source=distribute.pc_relevant_right.none-task-blog-OPENSEARCH-5&utm_source=distribute.pc_relevant_right.none-task-blog-OPENSEARCH-5