Heim >Java >javaLernprogramm >JAVA8-Paging-Tool

JAVA8-Paging-Tool

(*-*)浩
(*-*)浩nach vorne
2019-09-19 16:30:093167Durchsuche

JAVA8-Paging-Tool

Paging kann mithilfe der JAVA8-API erreicht werden. Wenn die Datenmenge relativ stabil ist, können alle Daten mit Caching gefunden und verwendet werden

import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
 
/**
 * @version 1.0
 * @author levelmini
 * @param <T>
 */
public class Page<T> {
	private int current_page;
	private int size;
	private int total_page; 
	private int total_sum;
	private transient List<T> instanceList;//Gson不序列化transient字段
	private List<T> currentPageData;
	private transient Optional<List<T>> op;
	
	public Page(List<T> instanceList,int size) {
		this.size = size;
		setInstanceList(instanceList);
	}
	
	public int getCurrent_page() {
		return current_page;
	}
	public void setCurrent_page(int current_page) {
		this.current_page = current_page<1?1:current_page>this.total_page?this.total_page:current_page;
		setCurrentPageData(currentPageData());
	}
	public int getSize() {
		return size;
	}
	public void setSize(int size) {
		this.size = size;
	}
	public int getTotal_page() {
		return total_page;
	}
	public int getTotal_sum() {
		return total_sum;
	}
	public List<T> getInstanceList() {
		return instanceList;
	}
	public void setInstanceList(List<T> instanceList) {
		this.op= Optional.ofNullable(instanceList);
		this.instanceList = op.orElse(new ArrayList<T>());
		this.total_sum = this.instanceList.size();
		this.total_page =(int) Math.ceil(1.0*this.total_sum/this.size);
	}
	public void setCurrentPageData(List<T> currentPageData) {
		this.currentPageData = currentPageData;
	}
	public List<T> getCurrentPageData(){
		return this.currentPageData;
	}
	private List<T> currentPageData(){
		if(this.size==0 || this.total_page == 1){
			return this.instanceList;
		}
		List<T> currentPageData = new ArrayList<T>();
		instanceList.stream().skip((this.current_page-1)*this.size).limit(this.size).forEach(e->currentPageData.add(e));
		return currentPageData;
	}
}

Verwendung:

List<News> newsList = newsService.findAll();
Page<News> page = new Page<>(newsList, size);
page.setCurrent_page(current_page);
return JsonUtil.toJson(page,"yyyy-MM-dd");

Das obige ist der detaillierte Inhalt vonJAVA8-Paging-Tool. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen