应用场景
在一些系统接口对接过程中,往往需要调用别人的接口并进行封装,但是返回的数据量又特别大,前端要求分页显示,这时只能将数据聚合后,在内存中进行分页
pageNo 页码(从 1 开始)
pageSize 每页数量(最小 1,最大 100)
核心代码示例
// 此处可以是Set,也可以是List,为了聚合结果的唯一性选择了Set
Set<String> aggregateSet = new HashSet<>();
// 调用RPC接口、Http接口填充aggregateSet....
// 通过skip函数和limit函数实现内存分页
aggregateSet = aggregateSet.stream()
.skip((pageNo - 1) * pageSize)
.limit(pageSize)
.collect(Collectors.toSet());
JSONArray results = JSON.parseArray(JSON.toJSONString(aggregateSet));
// 封装分页结果
JSONObject aggregateResult = new JSONObject();
aggregateResult.put("total",aggregateSet.size());
aggregateResult.put("pageNo",pageNo);
aggregateResult.put("pageSize",pageSize);
aggregateResult.put("results",results);