关于java的Map比较的一个超级难的问题
来源:百度知道 编辑:UC知道 时间:2024/09/04 18:56:07
有两个List list1和list2。
list1里有两个Map,map1和map2
其中map1:{A:a B:b C:c D:d}
map2:{A:b B:a C:c D:d}
list2里也有两个Map lm1和lm2
其中lm1:{A:a B:b}
lm2:{A:b B:a}
注:冒号前是key冒号后为value
已知这种情况下,lm1和map1比较的结果为true,因为lm1中的A和B都能在map1中找到对应的值。
现在将lm1改成{A:b B:b}
那肯定lm1与map1比较是false了。
问题是:怎么才能找出,false的原因是由于lm1中key为A所对应的值出错
看有一个回复,但是返回的是true和false而不是找到哪一个导致出错
我和老大们都交流过了,这个问题死解,分数就给第一个回复的人吧
list1里有两个Map,map1和map2
其中map1:{A:a B:b C:c D:d}
map2:{A:b B:a C:c D:d}
list2里也有两个Map lm1和lm2
其中lm1:{A:a B:b}
lm2:{A:b B:a}
注:冒号前是key冒号后为value
已知这种情况下,lm1和map1比较的结果为true,因为lm1中的A和B都能在map1中找到对应的值。
现在将lm1改成{A:b B:b}
那肯定lm1与map1比较是false了。
问题是:怎么才能找出,false的原因是由于lm1中key为A所对应的值出错
看有一个回复,但是返回的是true和false而不是找到哪一个导致出错
我和老大们都交流过了,这个问题死解,分数就给第一个回复的人吧
import java.util.*;
class test{
Map m1 = new HashMap();
Map m2 = new HashMap();
Map lm1 = new HashMap();
Map lm2 = new HashMap();
test(){
m1.put("A","a");
m1.put("B","b");
m1.put("C","c");
m1.put("D","d");
m2.put("A","b");
m2.put("B","a");
m2.put("C","c");
m2.put("D","d");
lm1.put("A","a");
lm1.put("B","b");
lm2.put("A","b");
lm2.put("B","a");
System.out.println("lm1与m1比较:"+equalsMap(lm1,m1));
System.out.println("lm2与m1比较:"+equalsMap(lm2,m1));
}
private static boolean equalsMap(Map mp1,Map mp2){
Set<Object> tempSet = new HashSet<Object>();
tempSet = mp1.keySet