Map 和 Map 比较
时间:2022-07-22
本文章向大家介绍Map 和 Map 比较,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
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("缺少离开时间");
}
}
}
- javascript:双链表-插入排序
- javascript:二叉搜索树 实现
- 自然语言处理 语言模型介绍
- 口水先擦干!从大数据看外卖如何拯救“忙”与“宅”
- javascript:巧用eval函数组装表单输入项为json对象
- Django——model基础
- java学习:日期的运算
- ORACLE:写Function时,传入参数变量名的注意事项
- spring boot 登录注册 demo (二) -- 数据库访问
- spring boot 登录注册 demo (三) -- 前后端传递
- python装饰器大详解
- spring boot 登录注册 demo (四) -- 体验小结
- jenkins 时区设置
- 什么样的密码才是安全的?
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 听说Mysql你很豪横?-------------管理MySQL数据库基本操作命令
- Axios安装封装api接口
- 排障集锦:九九八十一难之第七难!mysql数据库登录密码忘记了
- Css实现上下无限跳动
- 排障集锦:九九八十一难之第八难!ERROR 2002 (HY000): Can‘t connect to local MySQL server
- Vue Router配置参数、404页面
- 机器学习之决策树三-CART原理与代码实现
- Vue Router路径切换过渡动画
- 听说Mysql你很豪横?-------------深入解析mysql数据库中的索引!
- 听说Mysql你很豪横?-------------深入解析mysql数据库中的事务!
- Struts2笔记
- Vue Router实现路由嵌套单页面展示
- 排障集锦:九九八十一难之第九难!mysql备份恢复路上的小插曲
- jQuery限制复选框checkbox的选中次数
- jQuery点击切换增加和删除class类