把一个大的List集合拆分几个小的List集合方法

【把一个大的List集合拆分几个小的List集合方法】背景:
项目中遇到根据项目id集合去别的系统,发网络请求拿数据。
但是如果一次性去获取,那边运算非常慢,会超时。
所以要分批次去拿数据(分页)。
方案一

/** *拆分集合 *@param *@param resList 要拆分的集合 *@param count 每个集合的元素个数 *@return 返回拆分后的各个集合 **/ public static List> split(List resList, int count) { if (resList == null || count < 1){ return null; } List> ret = new ArrayList>(); 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 itemList = new ArrayList(); for (int j = 0; j < count; j++) { itemList.add(resList.get(i * count + j)); } ret.add(itemList); } // last的进行处理 if (last > 0) { List itemList = new ArrayList(); for (int i = 0; i < last; i++) { itemList.add(resList.get(pre * count + i)); } ret.add(itemList); } } return ret; }/** 测试方法 */ public static void main(String[] args) { List 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","100"); List ret = split(resList, 10); for (int i = 0; i < ret.size(); i++) { System.out.println(ret.get(i)); }}

方案二
/** * @param args */ public static void main(String[] args) { List 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","100"); resList = new ArrayList<>(resList); int pageSize = 5; while (!resList.isEmpty()){ List splitList = resList.subList(0, pageSize < resList.size() ? pageSize : resList.size()); System.out.println("-----"+splitList); // 清除已使用过的数据 splitList.clear(); } }

    推荐阅读