问题描述
在 SCALA 的不可变集合中,当集合的长度发生变化时会创建一个新对象让我们假设我创建了一个不可变的 Map 然后执行连接.代码=>
In immutable collection of SCALA a new object is created when length of collection changes Let us suppose I create a immutable Map and then perform concatenation.CODE=>
object Dcoder extends App
{
var map=Map("abc"-> 1,"xyz"->2)
var change =map++Map("change of object"+>3)
}
现在我的问题是
a) 新对象是否因为 ++ 而被创建??
b) 由于我使用的是 IMMUTABLE COLLECTION 并且 Immutable 集合的长度已更改,因此创建了新对象 ??
Now my Question is
a) Does the new object gets created because of ++ ??
b) Since I'm using a IMMUTABLE COLLECTION and length of Immutable collection has changed so new object is created ??
推荐答案
对这两个问题都是肯定的.事实上,根据scala docs:
Yes to both questions. In fact, according to scala docs:
ms ++ kvs
创建包含 ms 的所有映射以及 kvs 的所有键/值对的映射.
更多信息 这里.
creates map containing all mappings of ms as well as all key/value pairs of kvs.
More info here.
这篇关于集合 Map 的不变性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!