zoukankan      html  css  js  c++  java
  • java Map代替List在for循环中的应用

    例:有数据表:express

    对list集合:通过code获取name(orderController)

    方式1:

    (先查出数据表express中所有的对象List<Express>,在List<ExpressStatus>的遍历中,通过获取code,再获取name值,循环较多,i*j次)

    controller:

    List<Express> nameList = null;
    try {
    nameList = expressService.getAllName();
    } catch (Exception e) {
    return new APIResult(GlobalConstantsUtil.LOGIN_SESSION_INVALID, "获取物流公司对象失败");
    }
    List<ExpressStatus> list = null;
    try {
    list = expressStatusService.getByAllNo(orderId);
    } catch (Exception e) {
    return new APIResult(GlobalConstantsUtil.GENERAL_ERROR, "获取物流数据失败");
    }
     
    for (int i = 0; i < list.size(); i++) {
     
    ExpressStatus expressStatus = list.get(i);// achieve ExpressStatus object
    String company = expressStatus.getCom();// achieve company
     
    for (int j = 0; j < nameList.size(); j++) {
    Express express = nameList.get(j);
    String code = express.getCode();
    if (code.equals(company)) {
    companyName = express.getName();
    }
    }
    }
     
    方式二:
    (采用map方式,将查出的list对象放入map对象,在在List<ExpressStatus>的遍历中,通过获取code,再获取name值,循环少,i次)

    List<Express> nameList = null;
    try {
    nameList = expressService.getAllName();
    } catch (Exception e) {
    nameList = null;
    }
    // create List<ExpressStatus> object
    List<ExpressStatus> list = null;
    try {
    list = expressStatusService.getByAllNo(orderId);
    } catch (Exception e) {
    return new APIResult(GlobalConstantsUtil.GENERAL_ERROR, "获取物流数据失败");
    }
    if (list == null) {
    return new APIResult(GlobalConstantsUtil.GENERAL_ERROR, "获取物流数据失败");
    }
    // create HashMap and add data
    Map<String, String> expMap = new HashMap<String, String>();
    if (nameList == null) {
    nameList = new ArrayList<Express>();
    }
    for (int i = 0; i < nameList.size(); i++) {
    expMap.put(nameList.get(i).getCode(), nameList.get(i).getName());
    }

    for (int i = 0; i < list.size(); i++) {
    ExpressStatus expressStatus = list.get(i);// achieve ExpressStatus object

    String company = expressStatus.getCom();// achieve company

    String eCompanyName = null;
    eCompanyName = expMap.get(company);// achieve eCompanyName from Map

    }

    使用Map,通过键值对,获得键:code,使用方法:map.get(key)获取值,可直接获取name,效率高。

     
     
     
  • 相关阅读:
    不吐不快之EJB演练——开篇概述
    URL重写:RewriteCond指令与RewriteRule 指令格式
    刚到公司有点压力山大,在此希望有大神给点正能量
    053第449题
    选择排序---简单选择排序 堆排序
    bzoj-1492 货币兑换Cash (2)——CDQ分治
    MySQL 提高Insert性能
    Codeforces Round #313 (Div. 2) 560C Gerald&#39;s Hexagon(脑洞)
    Matlab矩阵基础
    Android 带清除功能的输入框控件EditTextWithDel
  • 原文地址:https://www.cnblogs.com/qqzhulu/p/10339937.html
Copyright © 2011-2022 走看看