Cut the list collection into multiple lists of the same size

/**
	 * 
	 * @param list     需要拆分的list
	 * @param pageSize 每个list的大小
	 * @param <T>
	 * @return
	 */
	private static <T> List<List<T>> splitList(List<T> list, int pageSize) {
    
    
		int listSize = list.size();
		int page = (listSize + (pageSize - 1)) / pageSize;//切割集合总个数
		List<List<T>> listArray = new ArrayList<List<T>>();//存放所有被切割的集合
		for (int i = 0; i < page; i++) {
    
    
			List<T> subList = new ArrayList<T>();//每个被切割的集合
			for (int j = 0; j < listSize; j++) {
    
    
				int pageIndex = ((j + 1) + (pageSize - 1)) / pageSize;//计算出该元素属于哪个集合
				if (pageIndex == (i + 1)) {
    
    //判断集合是否匹配,匹配则将元素添加到切割集合中
					subList.add(list.get(j));
				}
				if ((j + 1) == ((j + 1) * pageSize)) {
    
    //如果页数是1,表示会产生listSize数量的集合,此处循环一次即可,节省代码执行速度
					break;
				}
			}
			listArray.add(subList);
		}

		return listArray;
	}

Guess you like

Origin blog.csdn.net/weixin_44215804/article/details/109378085