Java映射util方法来深入检查containKey?
有人知道一个包含类似于Java映射util方法来深入检查containKey?,java,dictionary,hashmap,iteration,helper,Java,Dictionary,Hashmap,Iteration,Helper,有人知道一个包含类似于Util.deepContains()方法的Util库吗?我必须检查一个地图,它的嵌套条目的关键。我当然可以编写自己的逻辑,但我喜欢使用Utils来保持代码更干净,并保存一些单元测试 映射结构是map,其中对象可以是另一个map,依此类推。否,我不知道库中存在任何函数。但是,如果存在,是否值得只因为一个用例而导入整个库?您可以随意创建自己的函数。考虑下面的示例映射结构: { map2={ map3={ 4=4,
Util.deepContains()
方法的Util库吗?我必须检查一个地图,它的嵌套条目的关键。我当然可以编写自己的逻辑,但我喜欢使用Utils来保持代码更干净,并保存一些单元测试
映射结构是
map
,其中对象可以是另一个map
,依此类推。否,我不知道库中存在任何函数。但是,如果存在,是否值得只因为一个用例而导入整个库?您可以随意创建自己的函数。考虑下面的示例映射结构:
{
map2={
map3={
4=4,
5=5
}
},
map4={
6=6,
7=7
}
}
无论嵌套了多少个Map
,下面的递归函数都会迭代所有值,直到找到正确的值为止。在比较过程中,由于比较正确,您必须从对象
转换为T
static <T> boolean deepContains(Map<?, ?> map, T item) {
for (Entry<?, ?> entry: map.entrySet()) {
final Object value = entry.getValue();
boolean returned = false;
if (value instanceof Map<?, ?>) {
returned = deepContains((Map<?, ?>) value, item);
} else {
returned = item.getClass().cast(value).equals(item);
}
if (returned) {return true;}
}
return false;
}
地图的结构是什么?嵌套良好的地图通常作为值。但是只有两个级别。例如,你的意思是Map
?Map
,因为可能会有更多级别。但请确保键始终是字符串
,然后请编辑您的问题。
boolean result = deepContains(map, "4"); // returns true
boolean result = deepContains(map, "7"); // returns true
boolean result = deepContains(map, "8"); // returns false