这里做个java集合/数组拆分多个子集合/数组的两种实现方式的笔记。
方式 一:
/** * 拆分集合 * @param datas * @param splitSize * @param <T> * @return */ private <T> List<List<T>> spliceArrays(List<T> datas, int splitSize) { if (datas == null || splitSize < 1) { return null; } int totalSize = datas.size(); //获取要拆分子数组个数 int count = (totalSize % splitSize == 0) ? (totalSize / splitSize) : (totalSize/splitSize+1); System.out.println("split count = " +count); List<List<T>> rows = new ArrayList(); for (int i = 0;i < count;i ++) { int index = i * splitSize; List<T> cols = new ArrayList(); int j = 0; while (j < splitSize && index < totalSize) { cols.add(datas.get(index++)); j ++; } rows.add(cols); } return rows; }
方式二:
/** * 拆分集合 * @param datas * @param splitSize * @param <T> * @return */ private <T> List<List<T>> spliceArrays(List<T> datas, int splitSize) { if (datas == null || splitSize < 1) { return null; } int totalSize = datas.size(); int count = (totalSize % splitSize == 0) ? (totalSize / splitSize) : (totalSize/splitSize+1); List<List<T>> rows = new ArrayList<>(); for (int i = 0; i < count;i++) { List<T> cols = datas.subList(i * splitSize, (i == count - 1) ? totalSize : splitSize * (i + 1)); rows.add(cols); System.out.println(cols); } return rows; }
时间: 2024-11-05 19:35:40