如何在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返回一个新的集合 – 寻找转换来改变集合的位置。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |