目录标题
- 一、适用范围
- 二、利用 Java 8 的 stream 流提供的skip() 和 limit()方法
- 三、一般还需要对数据进行排序
一、适用范围
这种方式适用于数据量较少的情况。如果数据量太大,一下子放到内存,可能内存吃不消。
二、利用 Java 8 的 stream 流提供的skip() 和 limit()方法
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;}
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表达式快速实现
List<T> list= getData();
list.sort((f, s) -> {//第一个大于,第二个返回-1 降序if (f>s) {return -1;}if (f==s) {return 0;}return 1;});