`
抛出异常的爱
  • 浏览: 620682 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

答复: 大数组拆分查询—记一次代码优化

阅读更多
看了一下这个贴子
http://www.iteye.com/topic/728692
大多数人都从数据库来想办法.
我是想办法抽象一下他所需要的逻辑.

class Page implements Iterator<List>{
	int page = 5;
	int start = 0 ;
	int split = start + page ;
	List list ;
	public Page(List list ){
		this.list = list;
	}
	public Page(List list ,int page ){
		this.list = list;
		this.page =page;
	}
	public boolean hasNext() {		
		return start < list.size();
	}
	public List next() {
		List result = list.subList(start, split );
		start  = split;
		split += page;
		split  = Math.min(split,list.size());		
		return result;
	}
	public void remove()  {
		throw new RuntimeException("not to change");
	}
	
}

拆分数据 .
用法:
		List list = new ArrayList<String>();
		for(int i = 0 ; i <10; i++){
			list.add("A"+i);
		}

		Iterator<List> p = new Page(list);
	
		while(p.hasNext()){
			
			System.out.println(p.next());
			
		}
分享到:
评论
2 楼 抛出异常的爱 2010-08-06  
用于等长拆分list
一个list以5为单位拆成N个list最后一个list有多少算多少
1 楼 lyy3323 2010-08-06  
没看懂。。。

相关推荐

Global site tag (gtag.js) - Google Analytics