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