首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Scala 學習筆記:第一天 - 語言特性與集合框架概覽

     編輯:Java 綜合教學

Scala 學習筆記:第一天 - 語言特性與集合框架概覽

1. Scala 語言核心特性

  • 簡潔:語法精簡,減少樣板代碼
  • 易用:提供高級抽象,提升開發效率
  • 安全:強類型系統,編譯期捕獲錯誤
  • 快速:運行於 JVM,性能接近 Java
  • 通用:支持面向對象與函數式編程

2. 集合框架體系

Scala 集合分為可變集合(scala.collection.mutable)和不可變集合(scala.collection.immutable)。

  • 可變集合:允許添加、修改、刪除元素
  • 不可變集合:創建後不可變,預設採用此類集合
  • 若需使用可變集合,需顯式導入:scala.collection.mutable.具體類

以下圖表展示了集合類層級結構(圖片來源保留):

scala.collection 包所有集合類

不可變集合類

可變集合類

3. 集合字面量語法

/* 示例代碼 */
Map("x" -> 24, "y" -> 25, "z" -> 26)
Set(Color.red, Color.green, Color.blue)
List(1, 2, 3)

4. Iterable Trait 與常用操作

  • grouped(size):返回元素增量分塊的迭代器
  • sliding(size):生成滑動窗口迭代器

容器合併操作:

  • xs zip ys:將兩個容器合併為配對集合
  • xs zipAll (ys, x, y):長度不一時用指定值填充

5. 序列操作細節

  • update:在原序列上修改,僅適用於可變序列
  • updated:返回新序列,適用於所有序列

LinearSeq vs IndexedSeq:

  • 線性序列(如 List, Stream):高效的 head/tail
  • 索引序列(如 Array, ArrayBuffer):高效的 apply/length/update

6. List 常用操作示例

scala> var list = List()
list: List[Nothing] = List()
scala> 1 +: list
res0: List[Int] = List(1)
scala> list :+ 2
res1: List[Int] = List(2)
scala> list.padTo(5, 3)
res2: List[Int] = List(3, 3, 3, 3, 3)

7. 集合運算符差異

  • ++, --:通過拷貝實現添加/刪除,效率較低
  • +=, -=:可變集合專用,原地修改並返回變化後的集合

不可變集合內部實現:

  • 空集合:單例對象
  • 元素 ≤ 4:單例對象存儲字段
  • 元素 > 4:哈希前綴樹(hash trie),小集合比可變集合更緊湊高效
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved