1.說明
List集合分頁工具類,
可以對內存中的List集合進行分頁,
在需要分批返回數據,
或者分批插入數據等場景都很有用,
下面介紹三種開源庫提供的分頁工具:
- commons-collections4
- guava
- hutool
2.commons-collections4
Uitl類:
org.apache.commons.collections4.ListUtils
Pom依賴:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
<version>4.4</version>
</dependency>
Demo代碼:
package org.apache.commons.collections4;
import java.util.Arrays;
import java.util.List;
public class ListUtilsDemo {
public static void main(String[] args) {
List<String> list = Arrays.asList("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11");
// list進行分頁
partitionList(list);
}
/**
* 使用guava工具對list進行拆分分頁
*/
private static void partitionList(List<String> list) {
// 分頁拆分集合,每頁大小爲5條記錄
List<List<String>> pageList = ListUtils.partition(list, 5);
// 循環打印看看
pageList.forEach(System.out::println);
}
}
3.guava
Uitl類:
com.google.common.collect.Lists
Pom依賴:
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>30.1-jre</version>
</dependency>
Demo代碼:
package com.google.common.collect;
import java.util.List;
public class ListsDemo {
public static void main(String[] args) {
List<String> list = Lists.newArrayList("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11");
// guava工具對list進行拆分
partitionList(list);
}
/**
* 使用guava工具對list進行拆分分頁
*/
private static void partitionList(List<String> list) {
// 分頁拆分集合,每頁大小爲5條記錄
List<List<String>> pageList = Lists.partition(list, 5);
// 循環打印看看
pageList.forEach(System.out::println);
}
}
4.hutool
Uitl類:
cn.hutool.core.collection.ListUtil
Pom依賴:
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.7.16</version>
</dependency>
Demo代碼:
package cn.hutool.core.collection;
import java.util.Arrays;
import java.util.List;
public class ListUtilDemo {
public static void main(String[] args) {
pageStringList();
}
// 字符串排序後分頁
public static void pageStringList() {
String[] strs = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11" };
List<String> list = Arrays.asList(strs);
// ListUtil.sort(list, (a, b) -> a.compareTo(b));
ListUtil.sort(list, String::compareTo);
// 返回第0頁,每頁大小爲5條數據
int pageNo = 0;
int pageSize = 5;
List<String> results = ListUtil.page(pageNo, pageSize, list);
System.out.println(results);
}
}
相對來說,
hutool的ListUtil封裝的分頁工具類更好用。