import org.springframework.util.CollectionUtils;
import java.util.*;
import java.util.stream.Collectors;
/**
* @author yaoguanquan
* @creote 2020-08-06-15:36
*/
public class MemoryPagination {
/**
* 内存分页
*
* @param records 待分页的数据
* @param pageNum 当前页码
* @param pageSize 每页显示的条数
* @return 分页之后的数据
*/
public static <T> List<T> pagination(List<T> records, int pageNum, int pageSize) {
if (CollectionUtils.isEmpty(records)) {
return Collections.emptyList();
}
int totalCount = records.size();
int remainder = totalCount % pageSize;
int pageCount = (remainder > 0) ? totalCount/pageSize + 1 : totalCount/pageSize;
if (remainder == 0) {
return records.stream().skip((pageNum - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
} else {
if (pageNum == pageCount) {
return records.stream().skip((pageNum - 1) * pageSize).limit(totalCount).collect(Collectors.toList());
} else {
return records.stream().skip((pageNum - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
}
}
}
public static void main(String[] args) {
List<SysDict> list = new ArrayList<>();
list.add(new SysDict(1,"test1","1",1,3.32));
list.add(new SysDict(3,"test3","3",3,4.13));
list.add(new SysDict(2,"test2","11",2,4.11));
list.add(new SysDict(4,"test4","4",4,23.23));
list.add(new SysDict(5,"test5","5",5,0.23));
list.add(new SysDict(6,"test6","22",6,0.23));
list.add(new SysDict(7,"test7","3",7,0.23));
list.add(new SysDict(8,"test8","0.2",8,0.23));
/*
List<类> list; 代表某集合
//返回 对象集合以类属性一升序排序
list.stream().sorted(Comparator.comparing(类::属性一));
//返回 对象集合以类属性一降序排序 注意两种写法
list.stream().sorted(Comparator.comparing(类::属性一).reversed());//先以属性一升序,结果进行属性一降序
list.stream().sorted(Comparator.comparing(类::属性一,Comparator.reverseOrder()));//以属性一降序
//返回 对象集合以类属性一升序 属性二升序
list.stream().sorted(Comparator.comparing(类::属性一).thenComparing(类::属性二));
//返回 对象集合以类属性一降序 属性二升序 注意两种写法
list.stream().sorted(Comparator.comparing(类::属性一).reversed().thenComparing(类::属性二));//先以属性一升序,升序结果进行属性一降序,再进行属性二升序
list.stream().sorted(Comparator.comparing(类::属性一,Comparator.reverseOrder()).thenComparing(类::属性二));//先以属性一降序,再进行属性二升序
//返回 对象集合以类属性一降序 属性二降序 注意两种写法
list.stream().sorted(Comparator.comparing(类::属性一).reversed().thenComparing(类::属性二,Comparator.reverseOrder()));//先以属性一升序,升序结果进行属性一降序,再进行属性二降序
list.stream().sorted(Comparator.comparing(类::属性一,Comparator.reverseOrder()).thenComparing(类::属性二,Comparator.reverseOrder()));//先以属性一降序,再进行属性二降序
//返回 对象集合以类属性一升序 属性二降序 注意两种写法
list.stream().sorted(Comparator.comparing(类::属性一).reversed().thenComparing(类::属性二).reversed());//先以属性一升序,升序结果进行属性一降序,再进行属性二升序,结果进行属性一降序属性二降序
list.stream().sorted(Comparator.comparing(类::属性一).thenComparing(类::属性二,Comparator.reverseOrder()));//先以属性一升序,再进行属性二降序
*/
// 排序
//先以属性一升序,升序结果进行属性一降序,再进行属性二升序,结果进行属性一降序属性二
list.stream().sorted(
Comparator.comparing(SysDict::getSs).reversed().thenComparing(SysDict::getSort).reversed()
);
List<SysDict> pagination = pagination(list, 1, 2);
System.out.println(pagination.toString());
}
}
//class SysDict {
// private Integer id;
// private String name;
// private String value;
// private Integer sort;
// private Double ss;
//
// public SysDict(Integer id, String name, String value, Integer sort,Double ss) {
// this.id = id;
// this.name = name;
// this.value = value;
// this.sort = sort;
// this.ss = ss;
// }
//
// public Double getSs() {
// return ss;
// }
//
// public void setSs(Double ss) {
// this.ss = ss;
// }
//
// public Integer getId() {
// return id;
// }
//
// public void setId(Integer id) {
// this.id = id;
// }
//
// public String getName() {
// return name;
// }
//
// public void setName(String name) {
// this.name = name;
// }
//
// public String getValue() {
// return value;
// }
//
// public void setValue(String value) {
// this.value = value;
// }
//
// public Integer getSort() {
// return sort;
// }
//
// public void setSort(Integer sort) {
// this.sort = sort;
// }
//
// @Override
// public String toString() {
// return "SysDict{" +
// "id=" + id +
// ", name='" + name + '\'' +
// ", value='" + value + '\'' +
// ", sort=" + sort +
// ", ss=" + ss +
// '}';
// }
//
//}
内存分页 (java8 字段排序)
发布于 2020-08-06 741 次阅读
叨叨几句... NOTHING