zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    ACM ICPC 2008–2009 NEERC MSC A, B, C, G, L
    POJ 1088 滑雪 DP
    UVA 11584 最短回文串划分 DP
    POJ 2531 Network Saboteur DFS+剪枝
    UVa 10739 String to Palindrome 字符串dp
    UVa 11151 Longest Palindrome 字符串dp
    UVa 10154 Weights and Measures dp 降维
    UVa 10271 Chopsticks dp
    UVa 10617 Again Palindrome 字符串dp
    UVa 10651 Pebble Solitaire 状态压缩 dp
  • 原文地址:https://www.cnblogs.com/gccbuaa/p/6786192.html
Copyright © 2011-2022 走看看