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
Scala 中Array,List,Tuple的差别的更多相关文章
- 【Todo】【转载】Scala中Array, List, Tuple的区别
参考了这篇文章: https://my.oschina.net/u/1034176/blog/512314 1. 在Scala 2.7中,Array.List都不能混合类型,只有Tuple可以:而在S ...
- scala中Array简单实用
/** * 在scala中数组的使用 * 和java很类似,初始化后,长度就固定了,而且元素全部根据其类型初始化 * */ object arrayUse { def main(args: Array ...
- scala中Map和Tuple
/** * Created by root * Description : Tuple and Map */ object MapTest { def main(args: Array[String] ...
- scala中List、Array、ListBuffer、ArrayList、Set
scala中List.Array.ListBuffer.ArrayList.Set 一.List 二.Array 三.LIstBuffer 四.ArrayBuffer 五.Set 一.List Lis ...
- Programming In Scala笔记-第十七章、Scala中的集合类型
本章主要介绍Scala中的集合类型,主要包括:Array, ListBuffer, Arraybuffer, Set, Map和Tuple. 一.序列 序列类型的对象中包含多个按顺序排列好的元素,可以 ...
- Scala进阶之路-Scala中的枚举用法案例展示
Scala进阶之路-Scala中的枚举用法案例展示 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Scala中的枚举值和Java中的枚举值有点差别,不过使用起来也都差大同小异,我这 ...
- Scala进阶之路-Scala中的高级类型
Scala进阶之路-Scala中的高级类型 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.类型(Type)与类(Class)的区别 在Java里,一直到jdk1.5之前,我们说 ...
- (数据科学学习手札49)Scala中的模式匹配
一.简介 Scala中的模式匹配类似Java中的switch语句,且更加稳健,本文就将针对Scala中模式匹配的一些基本实例进行介绍: 二.Scala中的模式匹配 2.1 基本格式 Scala中模式匹 ...
- Scala中的Map集合
1. Map集合 1.1 Scala中的Map介绍 Scala中的Map 和Java类似,也是一个散列表,它存储的内容也是键值对(key-value)映射,Scala中不可变的Map是有序的,可变的M ...
随机推荐
- 牛客网python试题-错误整理-20180711
######## >>>[3] in [1,2,3,4] False >>>3 in [1,2,3,4] True ######## x = (y = z + 1) ...
- .Net MVC删除图片
还在学校,菜鸟级别,接触到的只是 /// <summary> /// 根据imageID删除图片 /// </summary> /// <returns>< ...
- WMS请求GetCapabilities,变成下载mapserv.exe解决办法
WMS1.1.1和WMS1.3.0两个版本中的几个区别: 1.WMS1.1.1中提供的DescribeLayers.GetStyles等接口在WMS1.3.0中不再提供支持,只提供GetCapabil ...
- windows部分快捷键及terminal命令
切换任务: win+tab terminal命令 pwd:打印当前工作目录 hostname:获取我的计算机的网络名称 mkdir:创建目录 cd:更改目录 ls/ dir -R:列出目录下的文件 r ...
- hosts修改备份
# Modified hosts start # Armorgames Start 93.184.220.39 cache.armorgames.com 93.184.220.39 gamemedia ...
- wsl折腾记
参考1 wsl在哪 C:\Users\用户名\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndg ...
- 【CF1015E】Stars Drawing(贪心)
题意:给定一个n×m大小的字符矩阵,仅由‘.’和‘*’组成,询问这个图可否划分为一些由‘*’组成的十字形状,这些十字之间可以有重叠, 如果存在方案则输出每个十字中心坐标与边长度,无解输出-1 n,m& ...
- Linq To Entity学习实践
public class CustomDataContext<TEntity> : System.Data.Linq.DataContext where TEntity : class,n ...
- JSTL获取Session的ID与获取文件的真实路径与项目名称
今天在测试集群配置的时候想到session共享,因此想要获取sessionID,可以通过下面方法: ${pageContext.session.id} 获取文件的真实路径: <%=request ...
- 关于expect脚本输出的问题
写了一个expect脚本 执行ssh命令远程登录 然后telnet另外一台机器 大致如下: #!/usr/bin/expect -f set timeout set port_type [lindex ...