如何迭代两个列表并比较其中的项目



我在大学的最后一个项目即将结束,我正试图用我目前的文章库存来控制我的库存。

我的股票包含以下属性:

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 
   }
}

相关内容

  • 没有找到相关文章

最新更新