我的应用程序存储数据库和用户值的值并进行比较。为了存储这些值,我使用了hashmap,键为整数,列表作为数据并存储值。键值和数据不必相同,但2个哈希映射中的所有数据值应相同
哈希图如下: key:value
1-[cd,done]
2-[mb,done]
3-[core,done]
另一个是
1-[mb,done]
2-[core,done]
3-[cd,done]
在代码中,无论值的存储顺序如何,上述hasmap都应该相等 但截至目前,我无法正确编码......
答案 0 :(得分:2)
据我了解,您只想测试地图的值是否等于他们自己的地图。
因此,您只需使用values()
方法比较containsAll
:
hashMap1.values().containsAll(hashMap2.values()) &&
hashMap2.values().containsAll(hashMap1.values());
您还可以使用CollectionUtils.isEqualCollection来简化代码:
CollectionUtils.isEqualCollection(hashMap1.values(), hashMap2.values());
答案 1 :(得分:0)
public static void main(String [] args){
Map<Integer,String> map1 = new HashMap<Integer,String>();
Map<Integer,String> map2 = new HashMap<Integer,String>();
map1.put(1, "ABC");
map1.put(2, "1123");
map2.put(1, "XYZ");
boolean val = map1.keySet().containsAll(map2.keySet());
for (Entry<Integer, String> str : map1.entrySet()) {
System.out.println("================="+str.getKey());
if(map2.containsKey(str.getKey())){
System.out.println("Map2 Contains Map 1 Key");
}
}
System.out.println("================="+val);
}