我有两个嵌套的Hashmaps,它们具有以下结构
key1: {
key2: {
bad_key: {}
}
}
如何比较两个哈希图,只省略某些嵌套键?
一种解决方案是遍历两个地图(您可以展平地图,即将折叠的密钥包含在主地图中),删除嵌套的密钥并执行
Map1.equals(Map2)
有没有更好的解决方案?
答案 0 :(得分:2)
您可以使用Guava: Google Core Libraries For Java
中的Maps
MapDifference<Integer, Student> mapDifference = Maps.difference(map1, map2);
如果你不想使用外部库,我会做这样的事情:
List<String> keys = Arrays.asList("one", "two", "three'");
for(String key: keys){
if(!left.get(key).equals(right.get(key))){
//do something with difference
}
};