尽管学了一段时间的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