加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何在Scala中使用可变集合

发布时间:2020-12-16 09:39:44 所属栏目:安全 来源:网络整理
导读:我想我可能不了解可变集合的工作原理。然而,我希望可变集合受到应用映射或添加新元素的影响: scala val s: collection.mutable.Seq[Int] = collection.mutable.Seq(1)s: scala.collection.mutable.Seq[Int] = ArrayBuffer(1)scala s :+ 2 //appended an el
我想我可能不了解可变集合的工作原理。然而,我希望可变集合受到应用映射或添加新元素的影响:

scala> val s: collection.mutable.Seq[Int] = collection.mutable.Seq(1)
s: scala.collection.mutable.Seq[Int] = ArrayBuffer(1)

scala> s :+ 2 //appended an element
res32: scala.collection.mutable.Seq[Int] = ArrayBuffer(1,2)

scala> s //the original collection is unchanged
res33: scala.collection.mutable.Seq[Int] = ArrayBuffer(1)

scala> s.map(_.toString) //mapped a function to it
res34: scala.collection.mutable.Seq[java.lang.String] = ArrayBuffer(1)

scala> s //original is unchanged
res35: scala.collection.mutable.Seq[Int] = ArrayBuffer(1)

//maybe mapping a function that changes the type of the collection shouldn't work
//try Int => Int

scala> s.map(_ + 1)
res36: scala.collection.mutable.Seq[Int] = ArrayBuffer(2)

scala> s //original unchanged
res37: scala.collection.mutable.Seq[Int] = ArrayBuffer(1)

这种行为似乎与不可变的集合是分开的,所以它们什么时候分开行事?

解决方法

对于不可变的和可变的集合,:和:创建新的集合。如果您想要可变集合自动增长,请使用 collection.mutable.Buffer定义的=和=方法。

类似地,map返回一个新的集合 – 寻找转换来改变集合的位置。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读