`
j2ee_yohn
  • 浏览: 168971 次
  • 性别: Icon_minigender_1
  • 来自: 湖南/株洲
社区版块
存档分类
最新评论

将集合的数据分页显示>>>一个不错的分页类!还有缺陷希望大家帮我改改..

    博客分类:
  • java
IE 
阅读更多

package com.yida.common;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;

/**
 * 将集合中的数据分页显示
 *
 * @author Administrator
 *
 */
@SuppressWarnings("unchecked")
public class CollectionToPatination<T>
{

 private Integer pageCount;

 private Integer currentPage;

 private Integer size;

 protected Integer getSize(Integer size)
 {
  if (null==size || size.intValue() < 1)
  {
   this.size = 1;
  }
  else
  {
   this.size = size;
  }
  return this.size;
 }

 public Integer getCurrentPage()
 {
  return currentPage;
 }

 private void setCurrentPage(Integer page)
 {
  // 判断是否在合法范围内,如果不在自动指定
  if (page.intValue() > pageCount.intValue())
  {
   this.currentPage = pageCount;
  }
  else if (page.intValue() < 1)
  {
   this.currentPage = 1;
  }
  else
  {
   this.currentPage = page;
  }
 }

 public Integer getPageCount()
 {
  return pageCount;
 }

 private void setPageCount(Collection coll)
 {
  this.pageCount = coll.size() % size.intValue() == 0 ? coll.size()
    / size : coll.size() / size + 1;
 }

 /**
  * 根据传来的数据来分页显示数量,使用截取
  *
  * @param lst
  * @param size
  * @param page
  *            这个必须为正整数
  * @return
  */
 @SuppressWarnings("unused")
 public List<T> parseCollectionToPatination(Collection coll, Integer size,
   Integer page)
 {
  // 不能放乱
  this.getSize(size);
  this.setPageCount(coll);
  this.setCurrentPage(page);
  System.out.println("PD"+(page.intValue()>currentPage.intValue())+"   cur:"+this.getCurrentPage());
  List l = new ArrayList();

  // 取得要得到的开始与结束下标
  int start = (this.getCurrentPage().intValue() - 1) * size.intValue()
    + 1;
  int end = start + size - 1;

  int s = coll.size();

  // 遍历集合,查出要取得的数量
  for (int h = start; h <= end; h++)
  {
   int idex = h - 1;
   try
   {
    l.add(coll.toArray()[idex]);
   }
   catch (IndexOutOfBoundsException ie)
   {
   }
  }
  return ((List<T>) l);
 }

 public static void main(String[] args)
 {
  List l = new ArrayList();
  // Set l=new TreeSet();
  l.add("唐亮1");
  l.add("唐亮4");
  l.add("唐亮5");
  l.add("唐亮2");
  l.add("唐亮6");
  l.add("唐亮3");
  Collections.sort(l);
  System.out.println(l.size());
  for (Object o : new CollectionToPatination<Object>()
    .parseCollectionToPatination(l, 2, 3))
  {
   System.out.println(o);
  }
 }
}

分享到:
评论
2 楼 j2ee_yohn 2008-11-13  
如果用list.subList(int fromIndex,int toIndex)方法实现的话,
那么像LinkedList、Set等一些Collection子类没有此方法呀
1 楼 zzx0421 2008-11-13  
List.subList()方法不就实现了你的功能吗?

相关推荐

    AppFramework数据库访问组件_代码生成插件_V1.1.rar

    18.0&lt;br&gt;1.23&lt;br&gt;&lt;br&gt;1.10&lt;br&gt;&lt;br&gt;每秒插入实体&lt;br&gt;&lt;br&gt;(20次insert)&lt;br&gt;41&lt;br&gt;21&lt;br&gt;1.95&lt;br&gt;&lt;br&gt;更新实体&lt;br&gt;&lt;br&gt;(20次单条update)&lt;br&gt;27&lt;br&gt;19&lt;br&gt;&lt;br&gt;SqlMap:24&lt;br&gt;1.42&lt;br&gt;&lt;br&gt;1.13&lt;br&gt;&lt;br&gt;查询结果集(平均101...

    Access 2000数据库系统设计(PDF)---001

    814.6.2 选择显示格式 834.6.3 使用输入掩码 874.7 使用Northwind Traders示例数据库 884.8 向现有的数据库添加一个新表 904.8.1 设计Personnel Actions表 914.8.2 创建Personnel Actions表 934.8.3 在数据表视图中...

    Access 2000数据库系统设计(PDF)---002

    814.6.2 选择显示格式 834.6.3 使用输入掩码 874.7 使用Northwind Traders示例数据库 884.8 向现有的数据库添加一个新表 904.8.1 设计Personnel Actions表 914.8.2 创建Personnel Actions表 934.8.3 在数据表视图中...

    Access 2000数据库系统设计(PDF)---018

    1487.2.5 将字段数据类型转换为Access数据类型 1497.2.6 使用链接表管理器加载项重新链接表 1507.2.7 导入表和将数据库文件链接为表 1507.3 导入和链接电子数据表文件 1517.3.1 通过导入Excel工作表创建一个表 1517....

    Access 2000数据库系统设计(PDF)---003

    814.6.2 选择显示格式 834.6.3 使用输入掩码 874.7 使用Northwind Traders示例数据库 884.8 向现有的数据库添加一个新表 904.8.1 设计Personnel Actions表 914.8.2 创建Personnel Actions表 934.8.3 在数据表视图中...

    Access 2000数据库系统设计(PDF)---011

    1487.2.5 将字段数据类型转换为Access数据类型 1497.2.6 使用链接表管理器加载项重新链接表 1507.2.7 导入表和将数据库文件链接为表 1507.3 导入和链接电子数据表文件 1517.3.1 通过导入Excel工作表创建一个表 1517....

    Access 2000数据库系统设计(PDF)---020

    1487.2.5 将字段数据类型转换为Access数据类型 1497.2.6 使用链接表管理器加载项重新链接表 1507.2.7 导入表和将数据库文件链接为表 1507.3 导入和链接电子数据表文件 1517.3.1 通过导入Excel工作表创建一个表 1517....

    Access 2000数据库系统设计(PDF)---009

    814.6.2 选择显示格式 834.6.3 使用输入掩码 874.7 使用Northwind Traders示例数据库 884.8 向现有的数据库添加一个新表 904.8.1 设计Personnel Actions表 914.8.2 创建Personnel Actions表 934.8.3 在数据表视图中...

    AppFramework_V1.0

    23.5&lt;br&gt; 15.9&lt;br&gt;&lt;br&gt;SqlMap:20.3&lt;br&gt; 1.48&lt;br&gt;&lt;br&gt;1.16&lt;br&gt; &lt;br&gt;查询结果集(平均101行)&lt;br&gt;&lt;br&gt;(1循环200次select)&lt;br&gt; 1055.1&lt;br&gt; 666.8&lt;br&gt;&lt;br&gt;不定字段:710.1&lt;br&gt; 1.58&lt;br&gt;&lt;br&gt;1.50&lt;br&gt; &lt;br&gt;&lt;br&gt; &lt;br&gt;&lt;br&gt;表...

    Access 2000数据库系统设计(PDF)---012

    1487.2.5 将字段数据类型转换为Access数据类型 1497.2.6 使用链接表管理器加载项重新链接表 1507.2.7 导入表和将数据库文件链接为表 1507.3 导入和链接电子数据表文件 1517.3.1 通过导入Excel工作表创建一个表 1517....

    Access 2000数据库系统设计(PDF)---015

    1487.2.5 将字段数据类型转换为Access数据类型 1497.2.6 使用链接表管理器加载项重新链接表 1507.2.7 导入表和将数据库文件链接为表 1507.3 导入和链接电子数据表文件 1517.3.1 通过导入Excel工作表创建一个表 1517....

    Access 2000数据库系统设计(PDF)---025

    1487.2.5 将字段数据类型转换为Access数据类型 1497.2.6 使用链接表管理器加载项重新链接表 1507.2.7 导入表和将数据库文件链接为表 1507.3 导入和链接电子数据表文件 1517.3.1 通过导入Excel工作表创建一个表 1517....

    Access 2000数据库系统设计(PDF)---027

    1487.2.5 将字段数据类型转换为Access数据类型 1497.2.6 使用链接表管理器加载项重新链接表 1507.2.7 导入表和将数据库文件链接为表 1507.3 导入和链接电子数据表文件 1517.3.1 通过导入Excel工作表创建一个表 1517....

    Access 2000数据库系统设计(PDF)---026

    1487.2.5 将字段数据类型转换为Access数据类型 1497.2.6 使用链接表管理器加载项重新链接表 1507.2.7 导入表和将数据库文件链接为表 1507.3 导入和链接电子数据表文件 1517.3.1 通过导入Excel工作表创建一个表 1517....

    Access 2000数据库系统设计(PDF)---029

    1487.2.5 将字段数据类型转换为Access数据类型 1497.2.6 使用链接表管理器加载项重新链接表 1507.2.7 导入表和将数据库文件链接为表 1507.3 导入和链接电子数据表文件 1517.3.1 通过导入Excel工作表创建一个表 1517....

    AppFramework_V1.0_New

    18.0&lt;br&gt;1.23&lt;br&gt;&lt;br&gt;1.10&lt;br&gt;&lt;br&gt;每秒插入实体&lt;br&gt;&lt;br&gt;(20次insert)&lt;br&gt;41&lt;br&gt;21&lt;br&gt;1.95&lt;br&gt;&lt;br&gt;更新实体&lt;br&gt;&lt;br&gt;(20次单条update)&lt;br&gt;27&lt;br&gt;19&lt;br&gt;&lt;br&gt;SqlMap:24&lt;br&gt;1.42&lt;br&gt;&lt;br&gt;1.13&lt;br&gt;&lt;br&gt;查询结果集(平均101...

    sysinternals 工具集合 (20090226版)

     Diskmon是一硬盘数据存取实时监控软件 ,能够将 Windows NT/2000/XP 操作系统的硬盘数据存取时间滴水不漏地纪录下来,您还可以将纪录文件储存成 LOG 文字文件。  DiskView  DiskView 该软件集成于微软的Windows...

    精通AngularJS part1

    创建一个基于控制器的分页指令258 理解指令控制器和链接函数的区别258 注入依赖259 编译过程259 获取其他控制器260 获取嵌入函数261 创建一个手风琴指令套件261 在手风琴组件中使用指令控制器262 实现...

Global site tag (gtag.js) - Google Analytics