Scala 中Array,List,Tuple的差別


               盡管學了一段時間的Scala了,可是總認為基礎不是太扎實,還有非常多的基礎知識比較模糊。於是近期又打算又一次學習基礎.

    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則保留每個元素的初始類型

                    6.訪問方式不同。Array和List的下標從0開始,且使用小括號,而Tuple的下標從1開始,切使用點加下划線的方式訪問,如:arrayTest(0), listTest(0); Tuple訪問: tupleTest._1


    以上就是我今天所學習到的一些內容,也可能還不是太准確,僅為個人觀點,若有不足。歡迎指正.


     參閱:  http://blog.csdn.net/lyrebing/article/details/20362227


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM