第十章 Scala 容器(三):使用可變與不可變容器特有方法

1. 可變容器通用方法(Common operators (methods) on mutable collections)

  • c += x:把x元素添加到集合c中spa

scala> val a = collection.mutable.ArrayBuffer(1,2,3)
a: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 2, 3)

scala> a += 4
res15: a.type = ArrayBuffer(1, 2, 3, 4)
  • c += (x,y,z):把x,y,z添加到集合c中scala

scala> val a = collection.mutable.ArrayBuffer(1,2,3)
a: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 2, 3)

scala> a += (4,5,6)
res16: a.type = ArrayBuffer(1, 2, 3, 4, 5, 6)
  • c1 ++= c2:把集合c2的元素所有添加到集合c1中code

scala> val c1 = mutable.ArrayBuffer(1,2,3)
c1: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 2, 3)

scala> val c2 = mutable.ArrayBuffer(4,5,6)
c2: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(4, 5, 6)

scala> c1 ++= c2
res20: c1.type = ArrayBuffer(1, 2, 3, 4, 5, 6)
  • c -= x:在集合c中刪除元素xorm

scala> val c = mutable.ArrayBuffer(1,2,3)
c: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 2, 3)

scala> c -= 3
res21: c.type = ArrayBuffer(1, 2)

scala> c -= 7
res22: c.type = ArrayBuffer(1, 2)
  • c -= (x,y,z):在集合c中刪除元素x,y,zrem

scala> val c = mutable.ArrayBuffer(1,2,3,4,5)
c: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 2, 3, 4, 5)

scala> c -= (3,4)
res23: c.type = ArrayBuffer(1, 2, 5)
  • c1 --= c2:刪除集合c1中全部在c2中存在的元素it

scala> val c1 = mutable.ArrayBuffer(1,2,3,4,5)
c1: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 2, 3, 4, 5)

scala> val c2 = mutable.ArrayBuffer(2,4)
c2: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(2, 4)

scala> c1 --= c2
res24: c1.type = ArrayBuffer(1, 3, 5)
  • c(n) = x:把集合c中第n個元素賦值爲xio

scala> val c = mutable.ArrayBuffer(1,2,3,4,5)
c: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 2, 3, 4, 5)

scala> c(2) = 8

scala> c
res26: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 2, 8, 4, 5)
  • c clear:刪除集合c中的全部元素table

scala> val c = mutable.ArrayBuffer(1,2,3,4,5)
c: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 2, 3, 4, 5)

scala> c.clear

scala> c
res28: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer()
  • c remove(n):在集合c中刪除第n個位置的元素,並返回該元素class

scala> val c = mutable.ArrayBuffer(1,2,3,4,5)
c: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 2, 3, 4, 5)

scala> c.remove(3)
res29: Int = 4

scala> c
res30: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 2, 3, 5)
  • c remove(n,len):在集合c的第n個元素開始,刪除len個元素容器

scala> val c = mutable.ArrayBuffer(1,2,3,4,5)
c: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 2, 3, 4, 5)

scala> c.remove(1,2)

scala> c
res32: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 4, 5)

2. 可變容器通用方法(Immutable collection operators)

    下面咱們來展現不可變容器的通用操做方法。不可變容器內容是不可變的,因此制定一個新的變量來接受這些方法的返回值。

  • c1 ++ c2:返回集合c1和集合c2的並集

scala> val v1 = Vector(1,2,3)
v1: scala.collection.immutable.Vector[Int] = Vector(1, 2, 3)

scala> val v2 = Vector(4,5,6)
v2: scala.collection.immutable.Vector[Int] = Vector(4, 5, 6)

scala> val v = v1 ++ v2
v: scala.collection.immutable.Vector[Int] = Vector(1, 2, 3, 4, 5, 6)
  • c :+ e:返回一個新的集合,內容爲集合c添加元素e造成的新集合

scala> Vector(1,2,3) :+ 4
res34: scala.collection.immutable.Vector[Int] = Vector(1, 2, 3, 4)
  • e +: c:返回一個新的集合,內容爲元素e追加到集合c前面造成的新集合

scala> 4 +: Vector(3,2,1)
res35: scala.collection.immutable.Vector[Int] = Vector(4, 3, 2, 1)
  • e :: List:返回新的List,內容爲元素e追加到List集合前造成的新List

scala> 4 :: List(3,2,1)
res37: List[Int] = List(4, 3, 2, 1)
相關文章
相關標籤/搜索