1

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

我的股票包含以下属性:

int idMercaderia;
int cantidad;
int idSucursal;

我有两个包含Inventario类型POJOs 的列表:

List <Inventario> stock = new InventarioDAO().findAll();
List <Inventario> inStock = new ArrayList <Inventario>();

在保存在数据库中之前,我想比较idMercaderia两者中的属性,如果它们相同,请不要创建另一个条目,只需将数量添加cantidad到当前库存中,saveOrUpdate()如果不只是创建另一个条目,则执行。

在尝试迭代两个列表后,我真的被困在这部分并且目前没有想法,但我无法弄清楚股票的事情。

任何帮助/代码将不胜感激。

4

2 回答 2

1

equals()如果还没有在其中Inventario进行比较,则需要实现一个方法idMercaderia。然后

for(Inventario item: stock){
   if(inStock.contains(item)){
       item.cantidad++;  
   }
}
于 2013-10-23T07:09:41.733 回答
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 
   }
}
于 2013-10-23T07:19:55.223 回答