List集合分批处理
public List<User> selectBatchProcess(List<String> dataList) {
if (null != dataList && dataList.size() > 0) {
List<User> allList = new ArrayList<>();
int pointsDataLimit = 999;
Integer size = dataList.size();
int delCount = size / pointsDataLimit;
if (size % pointsDataLimit != 0) {
delCount++;
}
System.out.println(delCount);
List<String> copyList;
Map<String, Object> map;
List<User> list;
for (int i = 0; i < delCount; i++) {
map = new HashMap<>(1);
copyList = new ArrayList<>();
if (i == delCount - 1) {
copyList.addAll(dataList.subList(0, dataList.size()));
if (!CollectionUtils.isEmpty(copyList)) {
map.put("ids", copyList);
}
dataList.subList(0, dataList.size()).clear();
} else {
copyList.addAll(dataList.subList(0, pointsDataLimit));
if (!CollectionUtils.isEmpty(copyList)) {
map.put("ids", copyList);
}
dataList.subList(0, pointsDataLimit).clear();
}
//分批查询
list = userExtMapper.selectUserList(map);
//数据汇总
allList.addAll(list);
}
return allList;
} else {
return new ArrayList<>();
}
}