1. 程式人生 > >Scala可變陣列與不可變陣列的區別、可變集合與不可變集合的區別、Array與ArrayBuffer的區別、List與ListBuffer的區別

Scala可變陣列與不可變陣列的區別、可變集合與不可變集合的區別、Array與ArrayBuffer的區別、List與ListBuffer的區別

不可變陣列與可變陣列的區別

Array與ArrayBuffer的區別

Array為不可變陣列,ArrayBuffer為可變陣列,兩則的區別比較好理解:
不可變指的是長度不可變。Array不能新增或刪除元素,沒有+=和-=方法;而ArrayBuffer可以新增或刪除元素。
注意點:Array和ArrayBuffer都可以修改元素,修改方法:array(0)=12,0為下標,12為新值。
測試如下圖:
在這裡插入圖片描述


不可變集合與可變集合的區別

List與ListBuffer的區別

List為不可變集合,ListBuffer為可變集合,兩則的區別在於:
當新增一個新元素時,
1.若使用的是:+方法,List和ListBuffer都會生成一個新的集合,原集合都不變。
2.若使用的是+=方法,List會報錯(List沒有+=方法);ListBuffer會生成一個新的集合,原集合發生改變。
3.若使用的是.append方法,List會報錯(List沒有.append方法);ListBuffer不會生成新集合,原集合發生改變。

總結:不可變集合與可變集合(包括Map、Set與List)根本性的差別在於——不可變集合修改(新增刪除等操作)元素必須要生成一個新的集合當作修改後的結果,原有的集合是不變的;而可變集合可以直接對原有集合進行修改(新增刪除等操作),可生成新集合也可不生成新集合,原有的集合可變。

測試如下圖:
在這裡插入圖片描述


最近開始學習Scala,發現自己似乎愛上了這門語言。
你若篤定了生命只有一次,便更沒有了敷衍的理由。
興趣是最好的老師,帶著樂趣,快樂前行。


創作不易,轉載請附上原文連結。歡迎志同道合的朋友檢視Scala分類,交流可郵[email protected]