Java List分割测试_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > Java List分割测试

Java List分割测试

 2017/10/16 18:25:55  shangql  程序员俱乐部  我要评论(0)
  • 摘要:importjava.util.ArrayList;importjava.util.List;importorg.apache.poi.ss.formula.functions.T;/***ProjectName:FireWeb*FileName:TestListSplit.java*PackageName:*Date:2017年10月16日下午3:13:01**//***ClassName:TestListSplit<br/>*Function:TODOADDFUNCTION
  • 标签:list 测试 Java
class="java" name="code">
import java.util.ArrayList;
import java.util.List;

import org.apache.poi.ss.formula.functions.T;

/**
 * Project Name:FireWeb
 * File Name:TestListSplit.java
 * Package Name:
 * Date:2017年10月16日下午3:13:01
 *
*/

/**
 * ClassName:TestListSplit <br/>
 * Function: TODO ADD FUNCTION. <br/>
 * Reason:	 TODO ADD REASON. <br/>
 * Date:     2017年10月16日 下午3:13:01 <br/>
 * @author   sql
 * @version  
 * @since    JDK 1.8
 * @see 	 
 */
public class TestListSplit {
	
	private static List<Integer> createList(int len){
		List<Integer> l = new ArrayList<Integer>();
		for (int i = 0; i < len; i++) {
			l.add(i);
		}
		return l;
	}
	
	 /**
     * 分割List
     * @param list 待分割的list
     * @param pageSize 每段list的大小
     * @return List<<List<T>> 
     */
     public static <T> List<List<T>> splitList(List<T> list, int pageSize) {
        
        int listSize = list.size();                                                           //list的大小
        int page = (listSize + (pageSize-1))/ pageSize;                      //页数
        
        List<List<T>> listArray = new ArrayList<List<T>>();              //创建list数组 ,用来保存分割后的list
        for(int i=0;i<page;i++) {                                                         //按照数组大小遍历
            List<T> subList = new ArrayList<T>();                               //数组每一位放入一个分割后的list
            for(int j=0;j<listSize;j++) {                                                 //遍历待分割的list
                int pageIndex = ( (j + 1) + (pageSize-1) ) / pageSize;   //当前记录的页码(第几页)
                if(pageIndex == (i + 1)) {                                               //当前记录的页码等于要放入的页码时
                    subList.add(list.get(j));                                               //放入list中的元素到分割后的list(subList)
                }
                
                if( (j + 1) == ((j + 1) * pageSize) ) {                               //当放满一页时退出当前循环
                    break;
                }
            }
            listArray.add(subList);                                                         //将分割后的list放入对应的数组的位中
        }
        return listArray;
    }
	
	public static void main(String[] args) {
		List<Integer> l  = createList(100000);
		System.out.println(l.size());
		List<List<Integer>> sl = splitList(l, 500);
		System.out.println(sl.size());
		for (int i = 0; i < sl.size(); i++) {
			List<Integer> subl = sl.get(i);
			System.out.print(i + " [" + subl.size()+"]");
			for (Integer si : subl) {
				System.out.print(" ," + si);
			}
			System.out.println("\r");
		}
		
//		System.out.println(33%10);
	}

}


发表评论
用户名: 匿名