关闭

将查询得到的集合转换为Hashmap

337人阅读 评论(0) 收藏 举报

       根据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对象。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:66971次
    • 积分:876
    • 等级:
    • 排名:千里之外
    • 原创:21篇
    • 转载:0篇
    • 译文:0篇
    • 评论:5条
    文章分类
    最新评论