两个很大的HashMap,要求列出key不在另一个map中的以及value不同的所有entry,求一个比较高效的算法。例:
map1
[a, 1]
[b, 2]
[c, 3]
[d, 4]map2
[b, 3]
[c, 2]
[d, 4]
[e, 5]result:
**in map1 not in map2***
[a,1]**in map2 not in map1***
[e,5]**value mismatch**
map1:[b, 2] map2:[b, 3]
map1:[c, 3] map2:[c, 2]
map1
[a, 1]
[b, 2]
[c, 3]
[d, 4]map2
[b, 3]
[c, 2]
[d, 4]
[e, 5]result:
**in map1 not in map2***
[a,1]**in map2 not in map1***
[e,5]**value mismatch**
map1:[b, 2] map2:[b, 3]
map1:[c, 3] map2:[c, 2]
解决方案 »
- Ant执行java程序在控制台输出乱码
- Linux系统中 JAVA用oracle11g 客户端连接问题
- 关于JAVASE的问题!
- RandomAccessFile能否读写序列化类
- 关于电信IVR网关程序
- if(true == flag){…………}与if (flag == true){…………}的区别
- 急~~~在线等待. 高手进: JAVA, 关于填充 1MB 零 的问题. 强者送分
- 请问一下以下错误如何解决?
- 关于jbuilder中querydataset查询数据库的问题
- visual J++ 里面的DataGrid控件怎么用呀,请高手指教!
- [求助]无法访问java.text.*;中的所有类
- 如何画一个上面2个角带圆弧的JButton?
Set set = map.keySet();
set.removeAll(map2.keySet());
System.out.println("**in map1 not in map2***");
System.out.println(map);
map1.keySet().removeAll(map.keySet());map = new HashMap(map2);
set = map.keySet();
set.removeAll(map1.keySet());
System.out.println("**in map2 not in map1***");
System.out.println(map);
map2.keySet().removeAll(map.keySet());Map map = new HashMap(map1);
map.entrySet().retainAll(map2.entrySet());
map1.entrySet().removeAll(map.entrySet());
map2.entrySet().removeAll(map.entrySet());
System.out.println("**value mismatch**");
System.out.println(map1);
System.out.println(map2);