使用附加值或新值扩展不可变映射
就像 如何扩展 an 一样:ImmutableList
ImmutableList<Long> originalList = ImmutableList.of(1, 2, 3);
ImmutableList<Long> extendedList = Iterables.concat(originalList, ImmutableList.of(4, 5));
如果我有一个现有的地图,我该如何扩展它(或创建一个带有替换值的新副本)?
ImmutableMap<String, Long> oldPrices = ImmutableMap.of("banana", 4, "apple", 7);
ImmutableMap<String, Long> newPrices = … // Increase apple prices, leave others.
// => { "banana": 4, "apple": 9 }
(让我们不要寻求有效的解决方案,因为显然这在设计上并不存在。这个问题更寻求最惯用的解决方案。