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)