方式一:
Java 从数据库中查到一个集合,通过父id分组,且每组小于等于100个
//数据分组
HashMap<String, List> hashMap = new HashMap<>();
for (int j=0;j<listTAdPlan.size();j++){
String key = String.valueOf(listTAdPlan.get(j).getAdvertiserId());
List list = hashMap.get(key);
if (list == null){
list = new ArrayList<>();
hashMap.put(key,list);
}
list.add(listTAdPlan.get(j));
}
//遍历
hashMap.forEach((key, value) -> {
//System.out.println("key=" + key + ",value=" + value);
Long advertiser_id=Long.parseLong(key);
//100条记录为一组
int pageSize=100;
while (!value.isEmpty()) {
List<TAdPlanEntity> splitList = value.subList(0, pageSize < value.size() ? pageSize : value.size());
// 清除已使用过的数据
splitList.clear();
}
});
方式二:(java8)
List<StatementQtfyjsylb> qtfyjsylb_yn8 = dataSynchronizationService.getQTFYJSYLB_YN8();
if (qtfyjsylb_yn8 == null || qtfyjsylb_yn8.isEmpty()) {
return;
}
Map<String, List<StatementQtfyjsylb>> listMap = qtfyjsylb_yn8.stream().collect(Collectors.groupingBy(StatementQtfyjsylb::getFkId));
List<AlterationJgsbhzb> jgsbhzbList = this.alterationJgsbhzbService.list(query);
if (jgsbhzbList == null || jgsbhzbList.isEmpty()) {
return;
}
Map<Integer, AlterationJgsbhzb> jgsbhzbMap = jgsbhzbList.stream().collect(Collectors.toMap(o1 -> o1.getFRowNumber(), o1 -> o1));