以下是将Java List转换为Page的示例代码:

public static <T> Page<T> listToPage(List<T> list, int pageNum, int pageSize) {
    int totalCount = list.size();
    int totalPages = (int) Math.ceil((double) totalCount / pageSize);
    int fromIndex = (pageNum - 1) * pageSize;
    int toIndex = Math.min(fromIndex + pageSize, totalCount);
    List<T> sublist = list.subList(fromIndex, toIndex);

    return new PageImpl<>(sublist, PageRequest.of(pageNum - 1, pageSize), totalCount);
}

使用示例:

List<String> list = Arrays.asList("a", "b", "c", "d", "e", "f", "g", "h", "i", "j");
int pageNum = 2;
int pageSize = 3;
Page<String> page = listToPage(list, pageNum, pageSize);

System.out.println("Page number: " + page.getNumber());
System.out.println("Page size: " + page.getSize());
System.out.println("Total pages: " + page.getTotalPages());
System.out.println("Total elements: " + page.getTotalElements());
System.out.println("Content: " + page.getContent());

输出结果:

Page number: 1
Page size: 3
Total pages: 4
Total elements: 10
Content: [d, e, f]

注意事项:

  • 该方法使用Java 8中的Stream API,需要在编译时指定Java版本为1.8或更高版本。
  • 该方法返回的Page对象是不可变的,如果需要修改Page对象的属性,需要创建一个新的Page对象。
java-List转page代码

原文地址: https://www.cveoy.top/t/topic/rlS 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录