我有以下代码
Map<String, List<String> myMap = new HashMap();
...
myMap
.getOrDefault("key", new ArrayList<>())
.add("value");
我的期望是,若map中并没有值(数组),它将返回对新创建的数组的引用,我可以将我的“值”添加到该数组中。
然而,我看到myContext映射是空的。看起来超基本的,我不明白。
getOrDefault
不会将您作为默认值提供的东西添加到映射中。它只是返回它。
你可能想看看computeIfAbsent。
如果存在该键,则返回该键的条目,否则返回参数函数
您的代码应该是:
myMap.computeIfAbsent("key", key -> new ArrayList<>()).add("value");
getOrDefault()
-用于访问值,而不是修改映射。
如果需要修改映射,可以改用putIfAbsent(),注意它返回一个以前与键关联的值(如果键不存在,则返回null)。对于您介绍的代码段,更合适的选项是返回当前值的computeIfAbsent()。
Map<String, List<String>> myMap = new HashMap<>();
myMap.computeIfAbsent("key", k -> new ArrayList<>())
.add("value");
我有下面的代码 我的期望是,若map中并没有值(数组),它将返回对新创建的数组的引用,我可以将我的“值”添加到该数组中。 然而,我看到myContext地图是空的。似乎超级基本,我不明白。
我正在从第三方网站(家庭用电)检索JSON,根据我从网站请求的内容,返回的JSON可能是也可能不是数组。例如,如果我请求我的智能电表列表,我会得到这个(由于尺寸大,结果被截断): 其中 gwrcmd 是单个元素。 但是如果我要求过去半个小时的用电,我会得到这个: 看看 gwrcmd 现在是一个数组吗? 在我的Go应用程序中,我有一个类似这样的结构(再次,被截断,因为它持续了一段时间。“版本”下有更
问题内容: 我试图从我的主函数返回一个更大的值,例如1000,但是当我键入它时显示0。 如果我返回一个较小的值(如100),它将显示正确的值。 我的代码: 我们可以返回的值是否有限制? 问题答案: 这里有两个相关的概念:C退出状态和bash返回代码。它们都覆盖0-255的范围,但是bash出于自己的目的使用大于126的数字,因此从程序中返回这些值会造成混乱。 为了安全起见,请将退出状态代码限制为0
我正在等待(从USSD请求中)检索一个值,以便返回它(getUSSD):
问题内容: 我正在从第三方网站(家庭用电)中检索JSON,并且根据我从该站点的要求,返回的JSON可能是数组,也可能不是数组。例如,如果我请求我的智能电表列表,则会得到以下信息(由于尺寸较大,结果被截断了): 其中 gwrcmd 是单个元素。 但是,如果我要求最近半小时用电,则会得到以下信息: 看看 gwrcmd 现在是一个数组吗? 在我的Go应用程序中,我有一个看起来像这样的结构(再次被截断了一
这里,当我返回一个箭头函数insted时,它不起作用: 我知道箭头函数是松散的,这就是为什么我在这里尝试在括号中返回它。没有他们也不行。