package page;
import java.io.Serializable;
import java.util.List;
public class Response implements Serializable {
private List list;
private boolean hasMore;
private int nextPageNo;
public List getList() {
return list;
}
public void setList(List list) {
this.list = list;
}
public boolean isHasMore() {
return hasMore;
}
public void setHasMore(boolean hasMore) {
this.hasMore = hasMore;
}
public int getNextPageNo() {
return nextPageNo;
}
public void setNextPageNo(int nextPageNo) {
this.nextPageNo = nextPageNo;
}
@Override
public String toString() {
return "Response{" +
"list=" + list +
", hasMore=" + hasMore +
", nextPageNo=" + nextPageNo +
'}';
}
}
package page;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class PageTest {
public static Response memoryPage(List list,int pageSize,int pageNum){
Response response=new Response();
if(CollectionUtils.isEmpty(list)) {
response.setHasMore(false);
response.setList(Collections.emptyList());
return response ;
}
int from=(pageNum-1)*pageSize;
int to=pageNum*pageSize;
int size=list.size();
response.setHasMore(size>to);
response.setNextPageNo(pageNum+1);
if(size>from){
response.setList(list.subList(from,Math.min(size,to)));
}
return response;
}
public static void main(String[] args){
List aa=new ArrayList();
aa.add(1);
aa.add(2);
aa.add(3);
aa.add(4);
aa.add(5);
aa.add(6);
aa.add(2);
Response response=memoryPage(aa,2,5);
System.out.println(response);
}
}
这样就可以一次远程调用获取所有的数据,然后进行内存分页做到分页处理的能力