首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Map 和 Map 比较

Map 和 Map 比较

作者头像
Remember_Ray
发布2020-08-03 23:17:29
1.8K0
发布2020-08-03 23:17:29
举报

String,String

/**
     * 用map的keySet()的迭代器(性能效率较低)
     * 
     */
    public  void compareMap1 (){
 
        Map<String, String> m1 = new HashMap<String, String>();//小
        Map<String, String> m2 = new HashMap<String, String>();//大
 
        Iterator<String> iter1 = m1.keySet().iterator();
 
        while (iter1.hasNext()) {
            String m1Key = (String) iter1.next();
            if (!m1.get(m1Key).equals(m2.get(m1Key))) {//若两个map中相同key对应的value不相等
                //......
            }
        }
 
    }
    /**
     * 用map的entrySet()的迭代器(性能效率较高)
     */
    public void compareMap2(){
        Map<String, String> m1 = new HashMap<String, String>();
        Map<String, String> m2 = new HashMap<String, String>();
         
        Iterator<Entry<String, String>> iter1 = m1.entrySet().iterator();
        while(iter1.hasNext()){
            Map.Entry<String, String> entry1 = (Entry<String, String>) iter1.next();
       String m1value = entry1.getValue() == null?"":entry1.getValue();
            String m2value = m2.get(entry1.getKey())==null?"":m2.get(entry1.getKey());
                  
            if (!m1value.equals(m2value)) {//若两个map中相同key对应的value不相等
                //其他操作...
            }
        }
    }
    /**
     * 用map的entrySet()的增强型for循环(性能效率较高)
     */
    public void compareMap3(){
         Map<String, String> m1 = new HashMap<String, String>();
         Map<String, String> m2 = new HashMap<String, String>();
          
         for(Map.Entry<String, String> entry1:m1.entrySet()){
             String m1value = entry1.getValue() == null?"":entry1.getValue();
             String m2value = m2.get(entry1.getKey())==null?"":m2.get(entry1.getKey());
             if (!m1value.equals(m2value)) {//若两个map中相同key对应的value不相等
                //其他操作...
            }
         } 
    }

String,List

项目中运用到,记录一下

// 车牌缓存 - 进入离开
Map<String, List<VehicleAnomalyVO>> inNumberMap = Maps.newHashMap();
    Map<String, List<VehicleAnomalyVO>> outNumberMap = Maps.newHashMap();

// 用于存放车辆进入工地信息
   List<VehicleAnomalyVO> inList = Lists.newArrayList();
   // 用于存放车辆离开工地信息
   List<VehicleAnomalyVO> outList = Lists.newArrayList();

// 循环检查,是否已存在key,如果存在则直接添加到key的list中,否则新增key和新增key对应的list
for (VehicleAnomalyVO in :
		inList) {
	if (numberMap.get(in.getRPlateNumber()) == null) {
		List<VehicleAnomalyVO> list = Lists.newArrayList();
		list.add(in);
		numberMap.put(in.getRPlateNumber(), list);
	} else {
		numberMap.get(in.getRPlateNumber()).add(in);
	}
}

for (VehicleAnomalyVO out :
		outList) {
	out.setState("4");
	if (outNumberMap.get(out.getRPlateNumber()) == null) {
		List<VehicleAnomalyVO> list = Lists.newArrayList();
		list.add(out);
		outNumberMap.put(out.getRPlateNumber(), list);
	} else {
		outNumberMap.get(out.getRPlateNumber()).add(out);
	}
}

// 开始比较
for (Map.Entry<String, List<VehicleAnomalyVO>> entry :
	  inNumberMap.entrySet()) {

	List<VehicleAnomalyVO> mapInList = entry.getValue();
	List<VehicleAnomalyVO> mapOutList = outNumberMap.get(entry.getKey());

	//System.out.println("**************************");
	//System.out.println("mapInList = " + mapInList);
	//System.out.println("mapOutList = " + mapOutList);
	//System.out.println("**************************");


	VehicleAnomalyVO vo;

	for (int i = 0; i < mapInList.size(); i++) {
		vo = new VehicleAnomalyVO();
		vo.setHist(new ZtPositionHist(mapInList.get(0).getRPlateNumber()));
		vo.setSynchroDate(getLatestSynDate());
		vo.setReceiveDateStart(mapInList.get(i).getReceiveDate());
		if (mapOutList != null && i < mapOutList.size()) {
			vo.setReceiveDateEnd(mapOutList.get(i).getReceiveDate());
			vo.setState("正常进入离开时间");
		} else {
			vo.setState("缺少离开时间");
		}
	}
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-12-13|,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • String,String
  • String,List
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档