Scala 中Array,List,Tuple的区别

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的声明不需要new关键字,而Tuple声明不管有无new 都可以

[java]  view plain  copy
  1. val arrayTest = Array(1,2,3,4)   //正确  
  2. val arrayTest = Array(1,2,3,4)   //错误<span style="font-family: Arial, Helvetica, sans-serif;">  </span>  
[java]  view plain  copy
  1. val listTest = List(1,2,3,4)         //正确  
  2. val listTest = new List(1,2,3,4)    //错误  
  3.   
  4. val tupleTest = Tuple(1,2,"aaa")        //正确  
  5. val tupleTest = new Tuple(1,2,"aaa")    //正确  
  6. val tupleTest = (1,2,"aaa")             //正确  
  

     5.当使用混合类型时,Array和List会将元素类型转化为Any类型,而Tuple则保留每一个元素的初始类型

                    6.访问方式不同,Array和List的下标从0开始,且使用小括号,而Tuple的下标从1开始,切使用点加下划线的方式访问,如:arrayTest(0), listTest(0); Tuple访问: tupleTest._1


  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值