开发者社区> 问答> 正文

Java HashMap-将新值附加到向量的优化方法

一种类似于在C ++中将新元素附加到矢量的类似方法:

myHashMap[myKey].push_back(newElement); //push newElement to the value vector directly

我在Java中想到的唯一方法是从hashmap获取向量。将新字符串附加到向量上,然后使用新向量再次设置密钥。

myValue = myHashMap.get(myKey);
/**Check if the key exists

**/
//If exists
myValue.add(newElement);
myHashmap.put(myKey, myValue);

第二种方法是否和以前一样快?如果没有,还有其他方法吗?谢谢

问题来源:Stack Overflow

展开
收起
montos 2020-03-25 13:23:44 490 0
1 条回答
写回答
取消 提交回答
  • 您不必将向量放回地图中,因为在添加向量时已经对其进行了修改。

    myHashMap[myKey].push_back(newElement); 
    

    通过

    myHashMap.get(myKey)
         .add(newElement);
    (假设myHashMap.get(myKey)不返回null)。
    

    您可以computeIfAbsent在Map界面中使用,为首次处理的键构造一个矢量对象。这更加优雅,不需要if块。

    myHashMap.computeIfAbsent(key, k -> new Vector<>())
                .add(newElement);
    

    k -> new Vector<>()仅当函数()myHashMap没有键的映射时才执行函数()key。这样做的好处是它返回的向量值,key以便我们可以add在其上链接调用。

    回答来源:Stack Overflow

    2020-03-25 13:24:48
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载