gpt4 book ai didi

Java Map util方法深度检查containKey?

转载 作者:行者123 更新时间:2023-12-02 11:10:38 25 4
gpt4 key购买 nike

有人知道一个 Util 库,其中包含类似 Util.deepContains() 的内容吗?方法?我必须检查 map 及其嵌套条目的 key 。我当然可以编写自己的逻辑,但我喜欢使用 Utils 来保持我的代码更简洁并保存一些单元测试。

map 结构为Map<String, Map<String, Object>>哪里Object可以是另一个Map等等。

最佳答案

,我不知道库中存在任何现有函数。但是,如果存在的话,是否值得仅因为一个用例就导入整个库?随意创建您自己的函数。考虑以下示例 map 结构:

{
map2={
map3={
4=4,
5=5
}
},
map4={
6=6,
7=7
}
}

无论有多少Map<String, Object>如果是嵌套的,则以下递归函数将迭代所有值,直到找到正确的值。在比较过程中,您必须从 Object 进行转换至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;
}

用法:

boolean result = deepContains(map, "4"); // returns true
boolean result = deepContains(map, "7"); // returns true
boolean result = deepContains(map, "8"); // returns false

关于Java Map util方法深度检查containKey?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50649154/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com