我使用以下代码来检查Map
实例中是否存在键:
if (!map_instance.containsKey(key))
throw new RuntimeException("Specified key doesn't exist in map");
else
return map_instance.get(key);
我的问题是:
是否有实用工具或Map
实现来简化上述代码,例如:
custom_map.get(key,"Specified key doesn't exist in map");
我的目标是:如果map中不存在key
,则map实现会抛出一个带有传递字符串的异常。
我不知道我的愿望是否合理?
对不起,如果我使用了错误的术语或语法,我还在学习英语。)
还有一个很好的方法可以实现这一点:
return Objects.requireNonNull(map_instance.get(key), "Specified key doesn't exist in map");
赞成的意见:
缺点:
NullPointerException
——有时NoTouchElementException
或自定义异常更可取需要Java 8
在Java8中,您可以从Map中使用computeIfAbent
,如下所示:
map.computeIfAbsent("invalid", key -> { throw new RuntimeException(key + " not found"); });
我使用可选的Javautil类,例如。
Optional.ofNullable(elementMap.get("not valid key"))
.orElseThrow(() -> new ElementNotFoundException("Element not found"));
问题内容: 是否总是需要在HashMap中检查密钥是否存在? 我有一个说有1000个条目的HashMap,我正在考虑提高效率。如果HashMap的访问非常频繁,则每次访问时检查密钥是否存在将导致大量开销。相反,如果键不存在,因此发生异常,我可以捕获该异常。(当我知道这种情况很少发生时)。这将减少对HashMap的访问。 这可能不是一个好的编程习惯,但是它将帮助我减少访问次数。还是我在这里想念什么?
问题内容: 我陷入一种情况,我需要检查嵌套JSON对象中是否存在密钥。通过嵌套的JSON对象,我在父JSON对象中具有一个JSON对象作为其键之一的值。所以我需要检查此密钥是否存在于整个JSON对象中。我将以下数据作为对象。我知道我可以解析此对象以获得JSON对象。 我已经使用方法来检查主要JSON对象中密钥的存在,并且它可以工作。但是对于检查任何内部JSON对象(例如“ info”),我需要再次
我不熟悉shell脚本,我有一个用于导入cert和使用keytool导入keystore的脚本。此脚本位于Pod中,有时我必须重新启动Pod,有时当此脚本运行时,我会出现此错误 现有条目别名服务器存在,覆盖?[no]:输入新别名(返回以取消此条目的导入): 我知道有命令列出别名 它给出了输出 服务器,2022年6月22日,PrivateKeyEntry,证书指纹(SHA-256):AC:DC:12
所以,我从服务器上获得了一些JSON值,但我不知道是否会有一个特定的字段。 比如: 有时,会有一个额外的字段,如: 我想检查名为“club”的字段是否存在,这样在解析时我就不会得到 组织。json。JSONException:俱乐部没有价值
问题内容: 我是NodeJS的新手,也许没有事件系统应该如何工作。找不到错误。请指教。我需要一个简单的任务- 检查标签,如果它不存在,则设置新密钥和有关该标签的信息。问题是-然后我第一次运行该脚本,它始终返回“键不存在”。检查redisdb键- 它会创建很多标签这是我的代码 这是另一个例子 输出: 看起来nodejs仅在该“设置”命令之后执行所有“获取”命令。所以…我了解,这全都归因于异步操作。但
问题内容: 我想知道boto3中是否存在密钥。我可以循环存储桶中的内容并检查密钥是否匹配。 但这似乎更长了,而且太过分了。Boto3官方文档明确说明了如何执行此操作。 可能是我缺少明显的东西。有人可以指出我如何实现这一目标。 问题答案: Boto 2的对象曾经有一种方法,该方法通过执行HEAD请求并查看结果来检查密钥是否在S3上存在,但似乎不再存在。您必须自己做: 对单个键执行HEAD请求,这是快