为 Java 地图实施分页

Implement Paging for Java Map

我有这个包含 Java 个对象的地图,我想将其显示为 UI 中的页面:

 Map<Integer, CategoryFullDTO> list = new HashMap<>();

 list.put(1, CategoryFullDTO.builder().id(1).title("item 1").build());
 list.put(2, CategoryFullDTO.builder().id(2).title("item 2").build());
 list.put(3, CategoryFullDTO.builder().id(3).title("item 3").build());

我使用以下方法创建页面对象:

 final Page<Map<Integer, CategoryFullDTO>> page = new PageImpl<>(list);

但我得到 Cannot infer arguments

如何将地图 spring 放入列表并逐页获取?

如果 PageImpl 来自 springframework.data.domain,则构造函数采用 List 参数而不是 Map 对象作为参数。

所以你可以试试

Map<Integer, CategoryFullDTO> map= new HashMap<>();

map.put(1, CategoryFullDTO.builder().id(1).title("item 1").build());
map.put(2, CategoryFullDTO.builder().id(2).title("item 2").build());
map.put(3, CategoryFullDTO.builder().id(3).title("item 3").build());

List<Map<Integer, CategoryFullDTO>> list = new ArrayList<>();
list.add(map);
final Page<Map<Integer, CategoryFullDTO>> page = new PageImpl<>(list);

对我有用。

final Page<Map> page = new PageImpl(new ArrayList(list.values()));