List<Map>数据对比?

题目描述

实际情况就是我从别的地方获取两组数据
一组是表头 另外一组是明细
我需要在把表头插入数据库前完善一些数据
需要从明细里获取数据给表头

题目来源及自己的思路

一条表头有个多个明细
根据明细的对应表头 获取到仓库id
但是 表头对应明细的情况 明细会有不同仓库id
这时候就要产生两个表头但是里面的仓库id不同

相关代码

List<Map> listHead = new ArrayList<>();

List<Map> listDetail = new ArrayList<>();

两个listMap 都有headId关联
String headId = Map.get(headId);
如果headId相同 就从listDetail获取classId 给listhead
listDetail有相同的headId 不同的classId
listhead不允许有重复的数据

有什么高效一点的方法


回答:

给你一个解决思路,就是你手里有一堆玩意要装在不同的袋子里,那么怎么办?当然是先把袋子准备好。

// 键为仓库ID,值为该仓库的明细列表

Map<String, List<Object>> warehouses = new HashMap<>();

当拿起一个玩意确定装到哪个袋子时,就塞进去。

List<Object> details = readDetails();

for (Object detail: details) {

String warehouseId = getWarehouseId(detail); // 从明细中提取仓库ID

warehouses

.computeIfAbsent(warehouseId, __ -> new ArrayList<>())

.add(detail);

}

然后你再针对不同的仓库去填充明细中缺失的部分。

以上是 List&lt;Map&gt;数据对比? 的全部内容, 来源链接: utcz.com/p/945057.html

回到顶部