根据id值获取它的对象是web开发中常见的操作,如果每次根据id值对list集合进行遍历,无疑效率是很低的。采用hashmap将id作为key值调用get(key)方法获取对应的对象则非常方便,并且效率也较高。以下代码是将对象中id,logisticsNo联合作为key,将对应的对象作为value装入到hashmap中的代码:
/**
* 获取物流配送信息
* @param
* @return
*/
@SuppressWarnings("unchecked")
public HashMap<String,LogisticsResultVo> getMapOfLogisticsInfo(){
try {
//定义HashMap
HashMap<String,LogisticsResultVo> LogisticsInfoMap = new HashMap<String,LogisticsResultVo>();
//获取当前页
pageCurr = this.getRequest().getParameter("pageCurr");
if(!StringUtil.isEmpty(pageCurr)){
if(CustomerUtil.isNumeric(pageCurr)){
page.setCurrentPage(Integer.parseInt(pageCurr));
}else{
page.setCurrentPage(1);
}
}
//获取查询到的物流一览信息
List<LogisticsResultVo> logicticsList = logisticsFacadeManagerBo.searchDetailInfoLogistics(lcVo,getPage());
if(logicticsList != null && logicticsList.size() > 0){
for(LogisticsResultVo lrv: logicticsList){
StringBuffer idNo = new StringBuffer();
String delegate_id = lrv.getDelegate_id();
String logisticsNo = lrv.getLogisticNO();
//创建委托代理ID加物流编号作为Map中的key
idNo.append(delegate_id);
idNo.append(",");
idNo.append(logisticsNo);
String idno = idNo.toString();
LogisticsResultVo uniqueLrVo = LogisticsInfoMap.get(idNo);
if(uniqueLrVo == null){
LogisticsInfoMap.put(idno, lrv);
}
}
}
return LogisticsInfoMap;
}catch (Exception e){
e.printStackTrace();
return null;
}
}
调用该方法:
logisticsResultVo = (LogisticsResultVo)getMapOfLogisticsInfo().get(idNo);
很方便的获取到对应该key值的Vo对象。