Because the Oracle data in the maximum allows 1000, the error will be exceeded, so the collection needs to be split into multiple collections for processing.
/*** Split Collection *@param<T> *@paramReslist the collection to split *@paramcount the number of elements per collection *@returnreturns the individual collections after splitting*/ Public Static<T> list<list<t>> Split (list<t> reslist,intcount) { if(reslist==NULL|| Count<1) return NULL ; List<List<T>> ret=NewArraylist<list<t>>(); intSize=reslist.size (); if(Size<=count) {//Insufficient amount of data count specified sizeRet.add (reslist); }Else{ intpre=size/count; intLast=size%count; //previous pre set, each size count element for(inti=0;i<pre;i++) {List<T> itemlist=NewArraylist<t>(); for(intj=0;j<count;j++) {Itemlist.add (Reslist.get (i*count+j)); } ret.add (ItemList); } //Last of the processing if(last>0) {List<T> itemlist=NewArraylist<t>(); for(inti=0;i<last;i++) {Itemlist.add (Reslist.get (pre*count+i)); } ret.add (ItemList); } } returnret; }
/** * @paramargs*/ Public Static voidMain (string[] args) {//TODO auto-generated Method StubList<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(intI=0;i<ret.size (); i++) {System.out.println (Ret.get (i)); } }
java-large collection split into small collections of specified size