Scala學習筆記(4)—— Scala集合
阿新 • • 發佈:2018-12-30
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)
}