我有一个方法 params 是一个大于 50000 个项目的列表;限于业务逻辑,列表必须小于30000,这样我才有办法在逻辑之前把这个数组拆分成二维数组
public static final <T> Collection<List<T>> partitionBasedOnSize(List<T> inputList, int size) {
AtomicInteger counter = new AtomicInteger(0);
return inputList.stream().collect(Collectors.groupingBy(s -> counter.getAndIncrement() / size)).values();
}
这是我目前的解决方案:
public List<Account> getChildrenList(List<Long> ids) {
List<Account> childrenList = new ArrayList<>();
Collection<List<Long>> childrenId2dList = PartitionArray.partitionBasedOnSize(childrenIdsList, 30000);
for (List<Long> list : childrenId2dList) {
//this is my business logic: start
childrenList.addAll(accountRepository.getAccounts(list));
//this is my business logic: end
}
return childrenAccountsList;
}
我想在方法之上创建一个注释而不是许多重复的代码(每次都检查和恶意...)
对不起,我的英语不好,我画了一个图表:方法调用>恶意数组>业务逻辑>收集所有结果>返回
幕布斯7119047
守着一只汪
相关分类