Map与List数据操作

为避免与数据库的多次连接,减少数据库的压力,先将所有的订货数据先从数据库中抽取出来,而后再将数据按门店进行分类汇总以备待用,Map与List混合操作,理解数据结构。提神醒脑哦。
以下是原始数据结构:
[{store_id=020, GoodsCode=04304654, Qty=8.000},
{store_id=956, GoodsCode=04304685, Qty=7.000},
{store_id=956, GoodsCode=04304715, Qty=6.000},
{store_id=956, GoodsCode=04304722, Qty=2.000}]

 

以下是想要的数据结构:
[
{store_id=020, orderList=[{GoodsCode=04304654, Qty=8.000}]},
{store_id=956, orderList=[{GoodsCode=04304685, Qty=7.000},{GoodsCode=04304715, Qty=6.000},{GoodsCode=04304722, Qty=2.000}]}
]

以下是实现代码:
1.用一层循环从数据中找出门店的store_id;
2.通过判断循环的store_id是否在新创建的数组中存在来保证其唯一性;
3.在用唯一的store_id来获取属于该门店的订货信息

 1 public List<Map<String, Object>> allOrderedStore(List<Map<String, Object>> allStoreOrderDetails) {
 2 List<String> storeList = new ArrayList<String>();
 3 List<Map<String, Object>> allOrderedStoreList =new ArrayList<Map<String, Object>>();
 4 
 5 for (int i = 0; i < allStoreOrderDetails.size(); i++) 
 6 { 
 7 String storeId=allStoreOrderDetails.get(i).get("store_id").toString();
 8 
 9 if (!storeList.contains(storeId)) 
10 { 
11 storeList.add(storeId);
12 Map<String, Object> Map = new HashMap<String, Object>();
13 Map.put("storeid", storeId);
14 List<Map<String, Object>> orderlist =new ArrayList<Map<String, Object>>();
15 for (int j = 0; j < allStoreOrderDetails.size(); j++) {
16 if(storeId.equals(allStoreOrderDetails.get(j).get("store_id"))){
17 Map<String, Object> orderMap = new HashMap<String, Object>();
18 orderMap.put("GoodsCode", allStoreOrderDetails.get(j).get("GoodsCode"));
19 orderMap.put("Qty", allStoreOrderDetails.get(j).get("Qty"));
20 orderlist.add(orderMap);
21 }
22 }
23 Map.put("orderList", orderlist);
24 allOrderedStoreList.add(Map);
25 }
26 }
27 return allOrderedStoreList;
28 }

 

转载于:https://www.cnblogs.com/maoBable/p/8964483.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值