儘管學了一段時間的Scala了,但是總認爲基礎不是太紮實,還有很是多的基礎知識比較模糊。因而近期又打算又一次學習基礎.java
Scala中的三種集合類型包含:Array,List,Tuple.那麼究竟這三種有哪些異同呢?說實話,我以前一直沒弄明確,因此今天特地花了點時間學習了一下.
一樣點:
1.長度都是固定的,不可變長
2.早期的Scala版本號,Array、List都不能混合類型,僅僅有Tuple可以,2.8版本號之後,3者的元素都可以混合不一樣的類型(轉化爲Any類型)
不一樣點:
1.Array 中的元素值可變,List和Tuple中的元素值不可變
2.Array一般是先肯定長度,後賦值,而List和Tuple在聲明的時候就需要賦值
3.Array取單個元素的效率很是高。而List讀取單個元素的效率是O(n)
4.List和Array的聲明不需要newkeyword。而Tuple聲明不管有無new 都可以學習
val arrayTest = Array(1,2,3,4) //正確 val arrayTest = Array(1,2,3,4) //錯誤<span style="font-family: Arial, Helvetica, sans-serif;"> </span>
val listTest = List(1,2,3,4) //正確 val listTest = new List(1,2,3,4) //錯誤 val tupleTest = Tuple(1,2,"aaa") //正確 val tupleTest = new Tuple(1,2,"aaa") //正確 val tupleTest = (1,2,"aaa") //正確
5.當使用混合類型時,Array和List會將元素類型轉化爲Any類型,而Tuple則保留每一個元素的初始類型spa
6.訪問方式不一樣。Array和List的下標從0開始,且使用小括號,而Tuple的下標從1開始,切使用點加下劃線的方式訪問,如:arrayTest(0), listTest(0); Tuple訪問: tupleTest._1.net
以上就是我今天所學習到的一些內容,也可能還不是太準確,僅爲我的觀點,如有不足。歡迎指正.code
參閱: http://blog.csdn.net/lyrebing/article/details/20362227
blog