Java流用于实现分页



我返回一个事务列表,如下所示;

List<AccountTransactions> products = accountTransactionRepository.findAll(specification);

// Currently all record are returned
List<AccountTransactionDto> transactionDtos = AccountTransactionMapper.toAccountTransactionDtoList(products) 
.stream().collect(Collectors.toList());

我想返回带页码的记录
假设事务列表有22条记录。

示例1:

PageSize=2 Page=10
1 2|3 4|5 6|7 8|9 10|11 12|13 14|15 16|17 18|19 20|21 22

返回一个包含事务19和20的列表。

示例2:

PageSize=5 Page=5
1 2 3 4 5|6 7 8 9 10|11 12 13 14 15|16 17 18 19 20|21 22

返回一个包含事务21和22的列表。

如何使用Stream API实现这一点?

int pageSize = 5;
int page = 5;
List<AccountTransactionDto> transactionDtos = AccountTransactionMapper.toAccountTransactionDtoList(products)
.stream()
.skip((page - 1) * pageSize)
.limit(pageSize)
.collect(Collectors.toList());

相关内容

  • 没有找到相关文章