我在大学的最后一个项目即将结束,我正试图用我目前的文章库存来控制我的库存。
我的股票包含以下属性:
int idMercaderia;
int cantidad;
int idSucursal;
我有两个列表包含Inventario
类型POJO
:
List <Inventario> stock = new InventarioDAO().findAll();
List <Inventario> inStock = new ArrayList <Inventario>();
在保留在数据库中之前,我想比较两个属性idMercaderia
,如果它们相同,请不要创建另一个条目,而只是将数量cantidad
添加到当前库存中,如果不是创建另一个条目,则执行saveOrUpdate()
。
我真的被困在这一部分,在尝试迭代两个列表后,目前没有想法,但我无法弄清楚库存问题。
任何帮助/代码将不胜感激。
Inventario
中尚未发生,则需要实现一个equals()
方法来比较其中的idMercaderia
。
for(Inventario item: stock){
if(inStock.contains(item)){
item.cantidad++;
}
}
创建第一个列表的Map<Integer, Inventario>
,以将idMercaderia
映射到一个Inventario
。然后迭代您的第二个列表,并检查地图中相应的每个项目。
Map<Integer, Inventario> map = new HashMap<Integer, Inventario>();
for (Inventario item : stock) {
map.put(item.getIdMercaderia(), item);
}
和
for (Inventario item : inStock) {
int idMercaderia = map.getIdMercaderia();
Inventario inventario = map.get(idMercaderia);
if (inventario == null) {
// error handling
continue;
}
if (item.getCantidad() == inventario.getCantidad() {
// handle
}
}