java—如何简化map中的值处理

ippsafx7  于 2021-07-03  发布在  Java
关注(0)|答案(1)|浏览(276)

我经常要编写这样的构造:如果键在那里,获取值并执行一些操作,否则就放入一个新值(有时需要额外的处理)有什么方法来简化代码吗?

Map<String, Integer> map = new HashMap<>();

    if (map.containsKey("someKey")) {
      //  get the value and do something          
        map.merge("someKey", 3, Integer::sum);
    } else {
         map.put("someKey", 0);
    }
omtl5h9j

omtl5h9j1#

在某些情况下,最终可能会压缩代码并使其更难阅读。取决于整体情况。
似乎你计划从一个空Map开始,目标是一个单一的迭代,那么你所拥有的就是伟大的。
请原谅我顽皮的回答:
选项1:您可以选择使用三元运算符而不是if-else语句。
选项2:如果您愿意,可以使用一个列表流并使用流终端操作foreach。如果你喜欢一些更疯狂的函数,那么就在lambda上使用三元运算符。
选项3:如果Map已经用值0初始化了所有键,那么实际上可以合并所有条目键。鉴于我没有完整的上下文,如果没有必要的话,我不能说迭代不止一次是个好主意。

相关问题