1import com.google.common.collect.Lists; 2 3import lombok.AllArgsConstructor; 4import lombok.Builder; 5import lombok.Getter; 6import lombok.NoArgsConstructor; 7import lombok.Setter; 8 9import java.util.Arrays; 10import java.util.List; 11import java.util.Optional; 12 13/** 14 * 对list进行分页 15 */ 16@Getter 17@Setter 18@Builder 19@NoArgsConstructor 20@AllArgsConstructor 21public class PageResult<T> { 22 private List<T> resultList; 23 24 private String next; 25 26 private long total; 27 28 /** 29 * 内存list分页 30 * 从开始遍历的话,start请输入"0" 31 * 当返回的next为"0"时,表示到列表的末尾 32 * 33 * @param start start 34 * @param limit limit 35 * @param list list 36 * @param <T> T 37 * @return PageResult 38 */ 39 public static <T> PageResult<T> pageList(int start, int limit, List<T> list) { 40 List<T> safeList = Optional.ofNullable(list).orElseGet(Lists::newArrayList); 41 int maxIndex = safeList.size(); 42 int nextIndex = start + limit; 43 int fromIndex = Math.min(start, maxIndex); 44 int toIndex = Math.min(nextIndex, maxIndex); 45 String next = toIndex == maxIndex ? "0" : String.valueOf(nextIndex); 46 return PageResult.<T> builder() 47 .resultList(safeList.subList(fromIndex, toIndex)) 48 .next(next) 49 .total(safeList.size()) 50 .build(); 51 } 52 53 public static void main(String[] args) { 54 PageResult<Integer> pageResult = PageResult.pageList(0, 2, Arrays.asList(1, 2, 3, 4, 5)); 55 } 56}
java对list进行分页
Wesley13
2021-10-11
1169 1 0
点赞
收藏
评论区
加载中...