我差不多在大学的最后一个项目结束时,我正试图用我目前的文章库存来控制我的inStock。
我的库存包含以下属性:
int idMercaderia;
int cantidad;
int idSucursal;
我有两个包含Inventario
类型POJO
s:
List <Inventario> stock = new InventarioDAO().findAll();
List <Inventario> inStock = new ArrayList <Inventario>();
在保留数据库之前,我想比较两个属性idMercaderia
,如果它们相同则不创建另一个条目,只需将数量cantidad
添加到数据库中当前股票,如果不只是创建另一个条目,请执行saveOrUpdate()
。
我真的陷入了这一部分,并且在尝试迭代两个列表之后目前已经没有想法了但是我无法弄清楚库存的东西。
任何帮助/代码都将非常感激。
答案 0 :(得分:1)
如果equals()
中尚未发生Inventario
方法,则需要实施idMercaderia
方法来比较for(Inventario item: stock){
if(inStock.contains(item)){
item.cantidad++;
}
}
。那么
{{1}}
答案 1 :(得分:1)
创建第一个列表的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
}
}