程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> scala學習之第一天,scala第一天

scala學習之第一天,scala第一天

編輯:JAVA綜合教程

scala學習之第一天,scala第一天


1、scala語言特性 簡潔、易用、安全、快速、通用 2、集合 Scala集合類分為可變集合(scala.collection.mutable)和不可變集合(scala.collection.immutable)。可變集合是指對象可以對集合中的元素進行增加、修改和刪除等操作;不可以變集合指集合一旦創建,集合裡的元素將不可變; 默認情況下,scala一直采用不可變集合,如果需要使用可變集合,需要顯示聲明(scala.collection.mutable.具體類) 下面的圖表顯示了scala.collection包中所有的集合類。這些都是高級抽象類或特性,它們通常具備和不可變實現一樣的可變實現。 下面的圖表顯示scala.collection.immutable中的所有集合類。 下面的圖表顯示scala.collection.mutable中的所有集合類。   集合的語法:
/* ---示例代碼----*/

Map("x" -> 24, "y" -> 25, "z" -> 26)
Set(Color.red, Color.green, Color.blue)
List(1, 2, 3)

/* ---示例代碼----*/

 


  Trait Iterable Iterable有兩個方法返回迭代器:grouped和sliding grouped方法返回元素的增量分塊,sliding方法生成一個滑動元素的窗口。 如圖: 容器合並: xs zip ys :將xs 和 ys合並成到一個容器 xs zipAll (ys, x, y)   序列 序列中update與updated之間的區別: update 在原來的基礎上修改序列的元素,並且只適用於可變序列 updated 總是返回一個新的序列,適用於所有序列   LinearSeq與IndexedSeq的特性: 線性序列具有高效的head和tail操作,而索引序列具有高效的apply,length和update操作。常用線性序列有 scala.collection.immutable.List和scala.collection.immutable.Stream。常用索引序列有 scala.Array scala.collection.mutable.ArrayBuffer。
/* ---示例代碼----*/

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)

/* ---示例代碼----*/

 


  集合 在集合中++、--與+=、-=的區別: ++、--操作符集合用於添加、刪除元素,這些操作要通過集合拷貝來實現,效率低 +=、-=操作符是可變集合中用於添加、刪除元素的操作符,s += elem,添加元素elem到集合s中,並返回產生變化後的集合作為運算結果。 目前可變集合默認使用哈希表來存儲集合元素,非可變集合則根據元素個數的不同,使用不同的方式來實現。空集用單例對象來表示。元素個數小於等於4的集合可以使用單例對象來表達,元素作為單例對象的字段來存儲。 元素超過4個,非可變集合就用哈希前綴樹(hash trie)來實現。采用這種表示方法,較小的不可變集合(元素數不超過4)往往會比可變集合更加緊湊和高效。    

開發交流學習

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved