Java 8 stream排序&分页

99 阅读1分钟

stream


前提

stream的降序排序和之前我们通过重写Comparable接口,实现降排相比,要节省很多代码,而用stream分页,额鹅…纯属玩玩,一般用来裁剪数据。

排序

List<Student newList = new ArrayList<>(10);
//升序
list.stream().sorted((v1,v2)->v1.getId().compareTo(
	v2.getId()
)).collect(Collectors.toList());

//降序
list.stream().sorted((v1,v2)->v2getId().compareTo(
	v1.getId()
)).collect(Collectors.toList());

//根据子对象id,升序排序,Student对象中还有一个Boy的对象属性
list.stream().sorted((v1,v2)->v1.getBoy().getbId().compareTo(
	v2.getBoy().getbId()
	)).collect(Collectors.toList());

分页

skip:跳过n个元素,limit裁剪大小,currentPage当前页,pageSize当前页大小。

list.stream().skip((currentPage-1)*pageSize).limit(pageSize).
									collect(Collectors.toList());