用于小数据量简单分页
package com.utill.tools;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* JAVA 分页
* @author long
*/
public class PageTools{
private static int pageRecorders = 15;// 每页15条数据
/**
* @param list
* @param page 第几页
* @param rows 每页15条数据
* @return
*/
public static Map<String,Object> getPageList(List<Map<String,Object>> list,String dimensionType,String title,int page,int rows){
page=getPage(page-1,list.size(),rows);
List<Object> result_list = splitList(list,page,rows);
Map<String,Object> map =new HashMap<String,Object>();
try {
if(result_list!=null&&result_list.size()>0){
List<Map<String, Object>> result = (List<Map<String, Object>>) result_list.get(0);
Map<String, Object> header = new HashMap<String, Object>();
List<Map<String, String>> header_list = new ArrayList<Map<String, String>>();
String[] str = title.replaceAll("\\[", "").replaceAll("]", "").split(",");
Map<String, String> bName = new HashMap<String, String>();
bName.put("name", dimensionType);
bName.put("type", "string");
header_list.add(bName);
for (int i = 0; i < str.length; i++) {
Map<String, String> hName = new HashMap<String, String>();
hName.put("name", str[i]);
hName.put("type", "string");
header_list.add(hName);
}
header.put("fields", header_list);
header.put("root", "rows");
header.put("successProperty", "success");
header.put("totalProperty", "total");
map.put("metaData", header);
map.put("success", "true");
map.put("total", list.size());
map.put("rows", result);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
return map;
}
/**
* list & page 1
* @param 默认15条记录分页
* @return
*/
public static Map<String,Object> getPageList(List<Map<String,Object>> list,String dimensionType,String title,int page){
return getPageList(list,dimensionType,title,page,pageRecorders);
}
/**
* 获取正常的页码
*/
public static int getPage(int page,int total,int rows){
if(page<0){
page=1;
}else if(page>(total/rows)){
page=(total/rows);
}
return page;
}
/**
* 获取分页后的List
* @param list
* @param page 第几页
* @param pageSize 每页15条
* @return 0-14,15-29,30-31
*/
public static List<Object> splitList(List<Map<String,Object>> list,int page,int pageRecorders)
{
List<Object> listArray = new ArrayList<Object>(list.size() / pageRecorders + 1);
for (int i = page*pageRecorders, next, max = list.size(); i < max; i = next) {
next = i + pageRecorders;
if (next > max) next = max;
listArray.add(list.subList(i, next));
}
return listArray;
}
/**
* main
* @param args
*/
public static void main(String[] args) {
List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();
for(int i=0;i<32;i++){
Map<String,Object> map = new HashMap<String,Object>();
map.put("name","张三"+i);
map.put("age",i);
list.add(map);
}
Map<String,Object> result=getPageList(list,"day","name",1);
List<Map<String,Object>> ll =(List<Map<String,Object>>)result.get("rows");
for(int i=0;i<ll.size();i++){
System.out.println(ll.get(i));
}
}
}
JAVA LIST 简单分页 集成EXT4 grid表头动态返回
最新推荐文章于 2022-07-30 18:19:21 发布