使用特定值分割ArrayList<ProductBean>时遇到的问题

ArrayList<ProductBean> al =new ArrayList<ProductBean>();


这里的ProductBean是Getter&Setter类,其中包含几个字段,如productId,productName,productPrice,shopId等。

                           (productId, productName, productPrice, shopId)
                           -------------------------
 ProductBean s1=new ProductBean(101,"Pantene Shampoo","10 rs.",23);
  ProductBean s2=new ProductBean(102,"Himalaya Fasewash","80 rs.",21);
  ProductBean s2=new ProductBean(103,"Dettol Bath soap","30 rs.",25);
  ProductBean s2=new ProductBean(104,"Dove Bath soap","30 rs.",25);
  ProductBean s2=new ProductBean(105,"Santoor Bath soap","20 rs.",25);
  //creating arraylist
  ArrayList<ProductBean> al=new ArrayList<ProductBean>();
  al.add(s1);//adding ProductBean class object
  al.add(s2);
  al.add(s3);


ArrayList具有相同或不同shopId的多个产品数据,这意味着
假设我有5种不同的产品,其中2种具有相同shopId的产品具有不同的shopId。

现在,我想用不同的ArrayList分隔shopId,如代码段所示,具有相同的shopId 25和其余的21、23,这导致3个不同的arraylist

最佳答案

一种方法是使用HashMap

HashMap<Integer, ArrayList<ProductBean>> map = new HashMap<>();


然后添加具有ID的产品以映射为

map.put(id,list);//ArrayList<ProductBean>


通过从地图获取列表来更新相同ID的列表,然后为相同ID重新插入更新后的列表

如果asynctsk的清单很长,请在productbean中执行所有这些操作

08-08 06:00