java - LinkedHashSet 上的分页
问题描述
我有一个 API 控制器,它允许用户返回他们保存到其帐户的用户配置文件列表。这些数据存储在 MongoDB 中,用 POJO 术语来说,我想要分页的数据是字符串的 LinkedHashSet。
现在,在我的代码的其他一些部分中,我List<String>
可以通过下面的代码“分页”简单:
public static <T> List<T> getPage(List<T> sourceList, int page, int pageSize) {
if (pageSize <= 0 || page < 0) {
throw new IllegalArgumentException("invalid page size: " + pageSize);
}
if (sourceList == null || sourceList.size() < (page * pageSize)) {
return Collections.emptyList();
}
return sourceList.subList(page, Math.min(page + pageSize, sourceList.size()));
}
谁能帮我将同样的逻辑应用于 LinkedHashset?我很挣扎,因为该集合没有子列表方法。
下面是我的控制器:
@GetMapping("/users/savedlist")
public Iterable<User> getUsersListOfSavedProfiles(Authentication authentication,
@PageableDefault(page = 0, size = 10) Pageable pageable) {
return savedProfilesService.getUsersSavedProfiles(authentication.getName(), pageable.getPageNumber(), pageable.getPageSize());
和 Pojo:
@Document(collection = "UsersSavedProfiles")
public class SavedProfiles {
@Id
@JsonIgnore
private String _id;
private String userId;
private LinkedHashSet<String> savedProfileIds;
通过 DALImpl 访问数据库:
@Override
public SavedProfiles findByUserId(String userId) {
Query query = new Query();
query.addCriteria(Criteria.where("userId").is(userId));
return mongoTemplate.findOne(query, SavedProfiles.class);
}
**** 为清晰而编辑 **** 我知道我可以为用户配置文件文档的 Mongo 查询分页,但我需要做的是在其中一个文档中对 ArrayList savedProfiles 进行分页。
再次感谢看到这个的人
解决方案
推荐阅读
- excel - User Defined Function to identify columns with coloured cells
- sitefinity - New Sitefinity site won't start after installing Nuget packages
- angular - 我无法使用我的项目 npm run sample 运行此命令
- javascript - Use maps.googleapi.com with "same-origin" cross origin policy
- image - 带有自动表 addImage 的 JSPDF
- python - Pytest:runtimeerror 线程“主线程”中没有当前事件循环
- email - 团队不显示通过 SendGrid 发送的电子邮件
- python - 模块“sib_api_v3_sdk”没有属性“SMTPApi”
- yaml - 如何在 github 操作中使用 terraform 解密 Iam_user 的 pgp 密钥
- excel - 使用 VBA 更改粘贴特殊设置