scala数据结构
-
1、种类
scala的数据结构有:数组Array、元组Tuple、容器Collection、序列Sequence、集合Set、映射Map、迭代器Iterator -
2、数组
- 创建方式 (创建一个长度为10类型为Int的数组
- 1 val arr = new Array[Int](10) 默认初始化为0
- 2 val arr = Array(0,0,0,0,0,0,0,0,0,0) 自动推断数据类型
- 3 val arr = Array.ofDim[Int](3,4) 创建三行四列数组
- 4 val arr = new Array[Array[Int]](3)
- 索引 arr(0)、arr(1)… 下标从0开始
- 数组中每个元素的数据类型必须相同
- 创建方式 (创建一个长度为10类型为Int的数组
-
3、元组
- 创建方式
- val tuple = (“a”,1,1.234)
- 索引
- tuple._1、tuple._2… 下标从1开始
- 元组允许元素具有不同的数据类型
- 创建方式
-
5、序列(Sequence)
- 列表(List)
- 创建:val l1 = List(“spark”,“hadoop”,“hbase”)、val l1 = “hbase”::“hadoop”::“spark”::Nil
- 索引:l1(0)、l1.head(取列表头元素)、l1.tail(获取除头元素外的数据)
- 拼接方式:val l2 = “flink”::l1 (只能在表头加)
- 列表不可修改,内部元素数据类型一致
- 向量(Vector)
- 创建 val vec1 = Vector(1,2,3)
- 索引:vec1(0)
- 拼接方式 val vec2 = 3+:4+:vec1(头);val vec3 = vec1 :+ 12(尾)
- Range 不可变数字等差序列
- 创建 Range(1,2,3,4,5):
val r = new Range(1,5,1)
val r = 1 to 5 by 1
val r = 1 until 6(不包含尾)
- 创建 Range(1,2,3,4,5):
- 集合(Set)
- 集合无序、无重复元素
- 创建 val myset = Set(“Hadoop”,“Spark”)
- 映射(Map) 键值对
- 创建:val map = (“a”->1,“b”->"2)
val map = ((“a”,1),(“b”,2)) - 索引:map(key)
- 添加:map + ((“c”,3),(“d”,4))
- 创建:val map = (“a”->1,“b”->"2)
- 列表(List)