Scala Collection

数组(Array)

import scala.collection.mutable.ArrayBuffer

// 定长数组
val a = new Array[String](5)

val b = new Array[Int](5)

val c = Array("cjj", "jjc")

b.length

// 数组赋值
a(1) = "cjj"
a

val array = Array[Int](1,2,3,4)
// 末尾添加一个元素
val a1 = array :+ 111

// 开头添加一个元素
val a2 = 111 +: array

val array2 = Array[Int](5,6)

// 两个数组相加
array ++ array2
array.++(array2)

array

// 将数组中的值迭代赋值给ele,然后打印
for(ele <- array){
  println(ele)
}

array.foreach(println)

// 逆序输出
for(ele <- array.reverse){
  println(ele)
}

// 跳2步输出一个
val array3 = Array("aaa", "bbb", "ccc")
for(i <- array3.length-1 to 0 by -2){
  println(array3(i))
}

for(i <- 0 to array3.length-1 by +1){
  println(array3(i))
}

for(i <- array3.indices by +1){
  println(array3(i))
}

// 判断是否为空
array.isEmpty
// 长度
array.length

// 求最大值,最小值,求和
val d = Array(1,2,3,4,5,6)
d.max
d.min
d.sum

d.mkString
d.mkString(",")
d.mkString("<", ",", ">")

// 变长数组
val e = ArrayBuffer[Int]()
e += 1
e += (2,3,4)
// 加定长数组
e ++= d
// 在指定位置插入元素
e.insert(0, 99)
e
// 删除指定位置元素
e.remove(2)
e
// 从指定位置开始删除,删除多少个元素
e.remove(1, 3)
e
// 移除最后几个元素
e.trimEnd(2)
e

列表(List)

List的特征是其元素以线性方式存储,集合中可以存放重复对象。

import scala.collection.mutable.ListBuffer
// 创建一个空List
Nil

val l = List(1,2,3,4,5)
// 返回头部
l.head
// 返回除了头部之外的所有
l.tail

// Any类型的List
val l1 = List(1,2,3,"cjj",0.0)

// List添加元素
val l2 = l1 :+ 55
val l3 = 11 +: l1
val l4 = 1 :: 2 :: 3 :: Nil
val l5 = l1 :: Nil
val l6 = 0 :: l1
val l7 = l1 ::: l2

// 添加元素
val list = ListBuffer[Int]()
list += 2
list += (1,3,4)
list ++= List(5,6,7)
list

// 减少元素,有就减,没有就不减
list -= 2
list -= 100
list --= List(3,4)

// 返回除了头部之外的所有
list.tail
list.tail.head

val list2 = List(1,2,3,4,5,6)
// 求和
list2.product

// 从前往后删,从后往前删
list2.drop(2)
list2.dropRight(2)

val list3 = List(1,2,3,4)
val list4 = List(3,4,5,6,7,8)

// 并集
list3.union(list4)

// 交集
list3.intersect(list4)

// 在3里有,在4里没有的元素
list3.diff(list4)

// 滑动窗口
val a = list4.sliding(4, 2)
for(ele <- a)(
  println(ele)
)

集合(Set)

import scala.collection.mutable.Set // 可以在任何地方引入 可变集合

val mutableSet = Set(1,2,3)
println(mutableSet.getClass.getName) // scala.collection.mutable.HashSet

mutableSet.add(4)
mutableSet.remove(1)
mutableSet += 5
mutableSet -= 2

println(mutableSet) // Set(5, 3, 4)

val another = mutableSet.toSet
println(another.getClass.getName) // scala.collection.immutable.Set

映射(Map)

object Test {
   def main(args: Array[String]) {
      val colors = Map("red" -> "#FF0000",
                       "azure" -> "#F0FFFF",
                       "peru" -> "#CD853F")

      val nums: Map[Int, Int] = Map()

      println( "colors 中的键为 : " + colors.keys )
      println( "colors 中的值为 : " + colors.values )
      println( "检测 colors 是否为空 : " + colors.isEmpty )
      println( "检测 nums 是否为空 : " + nums.isEmpty )
   }
}
原文地址:https://www.cnblogs.com/chuijingjing/p/14451474.html