1. 程式人生 > >Scala學習筆記(4)—— Scala集合

Scala學習筆記(4)—— Scala集合

1 陣列

1.1 定長陣列

在這裡插入圖片描述

  • 類名() ==》 呼叫 Object 的apply方法
    在這裡插入圖片描述
    在這裡插入圖片描述

在這裡插入圖片描述

1.2 可變陣列

package com.scalatest.scala.array

//繼承了 App ,不用寫main方法了
object ArrayApp  extends App{

    val b = scala.collection.mutable.ArrayBuffer[Int]()
    b += 1
    b += 2
    println(b)

}

在這裡插入圖片描述

package com.scalatest.scala.array

//
繼承了 App ,不用寫main方法了 object ArrayApp extends App { val b = scala.collection.mutable.ArrayBuffer[Int]() b += 1 b += 2 b += (3, 4, 5, 6) b ++= Array(8, 9, 10) // ArrayBuffer(1, 2, 3, 4, 5, 6, 8, 9, 10) b.insert(0, 0) // ArrayBuffer(0, 1, 2, 3, 4, 5, 6, 8, 9, 10) b.remove(1) // ArrayBuffer(
0, 2, 3, 4, 5, 6, 8, 9, 10) b.remove(0, 3) // ArrayBuffer(4, 5, 6, 8, 9, 10) b.trimEnd(2) // ArrayBuffer(4, 5, 6, 8) for (i <- 0 until b.length) { print(b(i)) } println() for (i <- (0 until b.length).reverse) { print(b(i)) } println() for (ele <
- b) { print(ele) } println() println(b) }

在這裡插入圖片描述

2 List

package com.scalatest.scala.array

object ListApp extends App{
    val l = List(1,2,3,4,5)

    val l5 = scala.collection.mutable.ListBuffer[Int]()
    l5 += 2
    l5 += (3,4,5)
    l5 ++= List(6,7,8) // ListBuffer(2, 3, 4, 5, 6, 7, 8)

    l5 -= 2 // ListBuffer(3, 4, 5, 6, 7, 8)

    l5 -= (3,100) // ListBuffer(4, 5, 6, 7, 8)

    l5 --= List(5,6,7,8) // ListBuffer(4)
    

    println(l5)

}

2.1 Nil 一個空的不可變集合

在這裡插入圖片描述

2.2 List 的 head tail

  • 第一個是 head,其餘的都是 tail
    在這裡插入圖片描述

  • :: 分隔 head,tail
    在這裡插入圖片描述

2.3 :_*

package com.scalatest.scala.array

object ListApp extends App {

    def sum(nums: Int*): Int = {
        if (nums.length == 0) {
            0
        } else {
            nums.head + sum(nums.tail: _*)
        }
    }

    println(sum())
    println(sum(1,2,3,4))
}

在這裡插入圖片描述\

3 Set

  • 元素無序,不能重複
    在這裡插入圖片描述
package com.scalatest.scala.array

object ListApp extends App {

    val set = scala.collection.mutable.Set[Int]()
    set += 1
    set += (3,2,6,4)

    println(set)
}

在這裡插入圖片描述