list 分頁工具類 和序列化、反序列化
public static byte[] serializeObject(Object object) {
ByteArrayOutputStream saos = new ByteArrayOutputStream();
ObjectOutputStream oos;
try {
oos = new ObjectOutputStream(saos);
oos.writeObject(object);
oos.flush();
} catch (IOException e) {
e.printStackTrace();
throw new BizException("Object序列化失敗");
}
return saos.toByteArray();
}
/** 反序列化物件
* @throws IOException
* @throws ClassNotFoundException */
public static Object deserializeObject(byte[] buf) {
Object object=null;
ByteArrayInputStream sais=new ByteArrayInputStream(buf);
ObjectInputStream ois;
try {
ois = new ObjectInputStream(sais);
object = ois.readObject();
} catch (Exception e) {
e.printStackTrace();
throw new BizException("位元組轉Object失敗");
}
return object;
}
package com.chehaha.shop.vo.shopInfoVo;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class PageUtil<T> {
/**原集合*/
private List<T> data;
/** 當前頁 */
private int pageNum;
/** 每頁條數 */
private int pageSize ;
/** 總頁數 */
private int totalPage = 0;
/** 總資料條數 */
private int totalElements = 0;
/** 得到物件 */
public PageUtil listToPage(List<T> data,int pageNum,int pageSize) {
PageUtil page = new PageUtil<>();
page.setPageNum(pageNum);
page.setPageSize(pageSize);
if (data == null || data.isEmpty()) {
return page;
}
page.setData(convertData(data,pageNum,pageSize));
page.setTotalElements(data.size());
page.setTotalPage((page.getTotalElements() + pageSize - 1) / pageSize );
return page;
}
/**
* 得到分頁後的資料
*/
public List<T> convertData(List<T> data,int nowPage,int pageSize) {
int fromIndex = (nowPage) * pageSize;
if (fromIndex >= data.size()) {
return Collections.emptyList();//空陣列
}
if(fromIndex<0){
return Collections.emptyList();//空陣列
}
int toIndex = (nowPage + 1) * pageSize;
if (toIndex >= data.size()) {
toIndex = data.size();
}
return data.subList(fromIndex, toIndex);
}
public List<T> getData() {
return data;
}
public void setData(List<T> data) {
this.data = data;
}
public int getPageNum() {
return pageNum;
}
public void setPageNum(int pageNum) {
this.pageNum = pageNum;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getTotalPage() {
return totalPage;
}
public void setTotalPage(int totalPage) {
this.totalPage = totalPage;
}
public int getTotalElements() {
return totalElements;
}
public void setTotalElements(int totalElements) {
this.totalElements = totalElements;
}
}