是否通过改变地图的参考错误做法来更新地图的值?

问题描述 投票:1回答:1

我正在使用的代码库周围都有类似的代码:

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

Map<Object, Integer> mapA = mapOfMap.computeIfAbsent(keyParam, k -> new HashMap<>());
mapA.put(objectParam, mapA.getOrDefault(objectParam, 0) + 1);

这样,我们在第一个映射中更新了'keyParam'的值,而没有直接调用put()方法。

我倾向于在代码是显式的并且通常会写一个简单的'put'调用时选择。但是,我想知道我是否考虑得太深了,而这种简洁是我们拥有对象引用所获得的呢?可以用类似简洁的方式在Java中编写这种方式来假装对象是不可变的吗?

java functional-programming hashmap immutability
1个回答
1
投票

可以,但不是这种情况。

© www.soinside.com 2019 - 2024. All rights reserved.