List<Map<String, Object>> map 数据结构手写一个分页 java
时间: 2024-06-17 09:04:03 浏览: 20
List<Map<String, Object>> 是一个包含多个 Map<String, Object> 元素的列表。每个 Map<String, Object> 对象都表示一行数据,Map 中的 key 表示列名,value 表示该列对应的值。在 Java 中手写一个分页功能,可以按照以下步骤实现:
1. 定义一个方法,该方法接受四个参数:List<Map<String, Object>> dataList(原始数据列表)、int pageNum(当前页码)、int pageSize(每页显示的数据条数)和String orderField(排序字段)。
2. 首先对原始数据列表进行排序,如果 orderField 不为空,则根据该字段对 dataList 进行排序。可以使用 Java 8 中的 lambda 表达式进行排序,例如:
if (orderField != null && !orderField.isEmpty()) {
dataList.sort((o1, o2) -> ((Comparable) o1.get(orderField)).compareTo(o2.get(orderField)));
}
3. 然后计算出总页数 totalPage 和当前页的起始索引 startIndex。其中,totalPage 可以通过数据总条数和每页显示的数据条数来计算,startIndex 可以通过 pageNum 和 pageSize 计算,例如:
int dataSize = dataList.size();
int totalPage = dataSize % pageSize == 0 ? dataSize / pageSize : dataSize / pageSize + 1;
int startIndex = (pageNum - 1) * pageSize;
4. 接下来根据 startIndex 和 pageSize 来截取数据列表,并将截取后的数据返回。可以使用 subList() 方法进行截取,例如:
List<Map<String, Object>> pageList = new ArrayList<>();
if (startIndex < dataSize) {
int endIndex = Math.min(startIndex + pageSize, dataSize);
pageList = dataList.subList(startIndex, endIndex);
}
return pageList;
这样就可以实现一个简单的分页功能了。
相关推荐
![jar](https://img-home.csdnimg.cn/images/20210720083455.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)