目录标题
-
- 一、适用范围
- [二、利用 Java 8 的 stream 流提供的skip() 和 limit()方法](#二、利用 Java 8 的 stream 流提供的skip() 和 limit()方法)
- 三、一般还需要对数据进行排序
一、适用范围
这种方式适用于数据量较少的情况。如果数据量太大,一下子放到内存,可能内存吃不消。
二、利用 Java 8 的 stream 流提供的skip() 和 limit()方法
java
public TableDataInfo getTrajectory(Integer pageNum, Integer pageSize) {
List<T> list= iService.getData();
if (pageNum == null || pageSize == null) {
pageNum = 1;
pageSize = 5;
}
List<T> collect = list.stream().skip((pageNum - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
TableDataInfo tableDataInfo = new TableDataInfo(collect, trajectory.size());
return tableDataInfo;
}
java
public class TableDataInfo implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 总记录数
*/
private long total;
/**
* 列表数据
*/
private Object rows;
/**
* 消息状态码
*/
private int code;
/**
* 消息内容
*/
private String msg;
/**
* 表格数据对象
*/
public TableDataInfo() {
}
/**
* 分页
*
* @param list 列表数据
* @param total 总记录数
*/
public TableDataInfo(Object list, int total) {
this.rows = list;
this.total = total;
}
public long getTotal() {
return total;
}
public void setTotal(long total) {
this.total = total;
}
public Object getRows() {
return rows;
}
public void setRows(Object rows) {
this.rows = rows;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
}
三、一般还需要对数据进行排序
利用集合的sort()方法,然后重新比较器
用java 8 的lamda表达式快速实现
java
List<T> list= getData();
list.sort((f, s) -> {
//第一个大于,第二个返回-1 降序
if (f>s) {
return -1;
}
if (f==s) {
return 0;
}
return 1;
});