Heim > Java > javaLernprogramm > JAVA8-Paging-Tool

JAVA8-Paging-Tool

(*-*)浩
Freigeben: 2019-09-19 16:30:09
nach vorne
3163 Leute haben es durchsucht

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;
	}
}
Nach dem Login kopieren

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");
Nach dem Login kopieren

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

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage