• 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

  • 相关阅读:
    C# 把带有父子关系的数据转化为------树形结构的数据 ,以及 找出父子级关系的数据中里面的根数据Id
    基于角色的菜单按钮权限的设计及实现
    基于记忆性的中值滤波O(r)与O(1)复杂度的算法实现
    Canny算法检测边缘
    图像平滑去噪之高斯滤波器
    运动元素提取,基于帧间差分与背景差分
    基于RGB与HSI颜色模型的图像提取法
    基于阈值的灰度图像提取法
    C语言深入学习
    大津法实现图像二值化
  • 原文地址:https://www.cnblogs.com/gccbuaa/p/6786192.html
Copyright © 2020-2023  润新知