java paging dummy pages implement a simple pager

  • 2020-05-09 18:38:02
  • OfStack


import java.util.Arrays; 
import java.util.Collections; 
import java.util.List; 
 
/** 
 * @author shuang.gao Date: 2016/1/28 Time: 12:26 
 */ 
public class Pager<T> { 
 
  /** 
   *  Number of bars per page  
   */ 
  private int pageSize; 
  /** 
   *  The original set  
   */ 
  private List<T> data; 
 
  private Pager(List<T> data, int pageSize) { 
    if (data == null || data.isEmpty()) { 
      throw new IllegalArgumentException("data must be not empty!"); 
    } 
 
    this.data = data; 
    this.pageSize = pageSize; 
  } 
 
  /** 
   *  Create a pager  
   * 
   * @param data  Data that needs to be paged  
   * @param pageSize  Number of bars per page  
   * @param <T>  The business object  
   * @return  The pager  
   */ 
  public static <T> Pager<T> create(List<T> data, int pageSize) { 
    return new Pager<>(data, pageSize); 
  } 
 
  /** 
   *  Get the paged data  
   * 
   * @param pageNum  The page number  
   * @return  Paged result  
   */ 
  public List<T> getPagedList(int pageNum) { 
    int fromIndex = (pageNum - 1) * pageSize; 
    if (fromIndex >= data.size()) { 
      return Collections.emptyList(); 
    } 
 
    int toIndex = pageNum * pageSize; 
    if (toIndex >= data.size()) { 
      toIndex = data.size(); 
    } 
    return data.subList(fromIndex, toIndex); 
  } 
 
  public int getPageSize() { 
    return pageSize; 
  } 
 
  public List<T> getData() { 
    return data; 
  } 
 
  public static void main(String[] args) { 
    Integer[] array = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}; 
    List<Integer> list = Arrays.asList(array); 
 
    Pager<Integer> pager = Pager.create(list, 10); 
 
    List<Integer> page1 = pager.getPagedList(1); 
    System.out.println(page1); 
 
    List<Integer> page2 = pager.getPagedList(2); 
    System.out.println(page2); 
 
    List<Integer> page3 = pager.getPagedList(3); 
    System.out.println(page3); 
  } 
} 

Fake paging, as the name suggests, is not really filtering in the database, but querying from the database, getting all the results, and then doing something about it.
import java.util.Arrays;  
import java.util.Collections;  
import java.util.List;  
 
/**
  * @author shuang.gao   Date: 2016/1/28 Time: 12:26
  */  
public class Pager < T > {  
 
      /**
        * number of bars per page
        */  
      private int pageSize;  
      /**
        * original set
        */  
      private List < T > data;  
 
      private Pager(List < T > data, int pageSize) {  
              if (data == null || data.isEmpty()) {  
                      throw new IllegalArgumentException("data must be not empty!");  
              }  
 
              this.data = data;  
              this.pageSize = pageSize;  
      }  
 
      /**
        * create pagers
        *
        * @param data requires paging data
        * @param pageSize number of bars per page
        * @param < T > The business object
        * @return pager
        */  
      public static < T > Pager < T > create(List < T > data, int pageSize) {  
              return new Pager < > (data, pageSize);  
      }  
 
      /**
        * gets the paged data
        *
        * @param pageNum page number
        * @return
        */  
      public List < T > getPagedList(int pageNum) {  
              int fromIndex = (pageNum - 1) * pageSize;  
              if (fromIndex > = data.size()) {  
                      return Collections.emptyList();  
              }  
 
              int toIndex = pageNum * pageSize;  
              if (toIndex > = data.size()) {  
                      toIndex = data.size();  
              }  
              return data.subList(fromIndex, toIndex);  
      }  
 
      public int getPageSize() {  
              return pageSize;  
      }  
 
      public List < T > getData() {  
              return data;  
      }  
 
      public static void main(String[] args) {  
              Integer[] array = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};  
              List < Integer > list = Arrays.asList(array);  
 
              Pager < Integer > pager = Pager.create(list, 10);  
 
              List < Integer > page1 = pager.getPagedList(1);  
              System.out.println(page1);  
 
              List < Integer > page2 = pager.getPagedList(2);  
              System.out.println(page2);  
 
              List < Integer > page3 = pager.getPagedList(3);  
              System.out.println(page3);  
      }  
}  
This is a simple pager, the principle is very simple, will query the data from the database, into the pager, return is a set of pages.
The advantage is that it is compatible with all JDBC databases, but the disadvantage is that this method is not suitable for large volumes of data.

The above is the entire content of this article, I hope to help you with your study.


Related articles: