zoukankan      html  css  js  c++  java
  • Java-大集合拆分为指定大小的小集合

    因为Oracle数据的in 最大允许1000 ,超过就会报错, 所以需要将集合拆分为多个集合进行处理.

    /**
         * 拆分集合
         * @param <T>
         * @param resList  要拆分的集合
         * @param count    每个集合的元素个数
         * @return  返回拆分后的各个集合
         */
        public static  <T> List<List<T>> split(List<T> resList,int count){
            
            if(resList==null ||count<1)
                return  null ;
            List<List<T>> ret=new ArrayList<List<T>>();
            int size=resList.size();
            if(size<=count){ //数据量不足count指定的大小
                ret.add(resList);
            }else{
                int pre=size/count;
                int last=size%count;
                //前面pre个集合,每个大小都是count个元素
                for(int i=0;i<pre;i++){
                    List<T> itemList=new ArrayList<T>();
                    for(int j=0;j<count;j++){
                        itemList.add(resList.get(i*count+j));
                    }
                    ret.add(itemList);
                }
                //last的进行处理
                if(last>0){
                    List<T> itemList=new ArrayList<T>();
                    for(int i=0;i<last;i++){
                        itemList.add(resList.get(pre*count+i));
                    }
                    ret.add(itemList);
                }
            }
            return ret;
            
        }
        /**
         * @param args
         */
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            List<String> resList=Arrays.asList("0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41","42","43","44","45","46","47","48","49","50","51","52","53","54","55","56","57","58","59","60","61","62","63","64","65","66","67","68","69","70","71","72","73","74","75","76","77","78","79","80","81","82","83","84","85","86","87","88","89","90","91","92","93","94","95","96","97","98","99");
            List<List<String>> ret=split(resList,10);
            
            for(int i=0;i<ret.size();i++){
                System.out.println(ret.get(i));
            }
            
        
        }
    ----------- 赠人玫瑰,手有余香     如果本文对您有所帮助,动动手指扫一扫哟   么么哒 -----------


    未经作者 https://www.cnblogs.com/xin1006/ 梦相随1006 同意,不得擅自转载本文,否则后果自负
  • 相关阅读:
    UVA 221
    A Typical Homework(学生信息管理系统)
    追踪电子表格中的单元格
    浮点数!!!(摘)
    poj 3158kickdown
    循环小数 UVa202
    Unix is 命令
    W
    V
    完美世界 字符串倒置输出
  • 原文地址:https://www.cnblogs.com/xin1006/p/4126225.html
Copyright © 2011-2022 走看看