Scala入门系列之二--数组、元组、列表、集合、映射、迭代器数
2020-04-08 本文已影响0人
微生活_小阿楠
传送门
Scala入门系列之一--使用命令行往文件输入数据并读取数据
Scala入门系列之二--数组、元组、列表、集合数据类型简述
Scala入门系列之三--类和方法的创建以及命令行执行scala文件
Scala入门系列之四--类成员的可见性(private)以及用value和value_=进行读取和修改
Scala入门系列之五--主构造器和辅助构造器
Scala入门系列之六--伴生对象和伴生类
Scala入门系列之七--scala中的继承
Scala入门系列之八--scala中的特质(trait),也称接口
Scala入门系列之九--模式匹配两大法宝(match语句和case类)
Scala入门系列之十--包
Scala入门系列之十一--函数式编程基础
Scala入门系列之十二--高阶函数
Scala入门系列之十三--针对容器的操作(遍历/映射/过滤/规约操作)
Scala入门系列之十四--使用IDEA编写Scala代码并Maven打包提交集群运行
传送门
一、数据类型
1).数组
//声明一个整型数组
val intValueArr = new Array[Int](3)//声明一个长度为3的整型数组,
val intValueArr1 = Array(1,2,3)
//每个数组元素初始化为0
intValueArr(0) = 1 //给第1个数组元素赋值为1
intValueArr(1) = 2 //给第2个数组元素赋值为2
2).元组
- 如果需要在方法返回多个不同类型的对象,可用元组
//元组是对多个不同类型对象的一种简单封装,最简单的方法就是把多个元素用
//逗号分开并用圆括号包围起来
val tuple = ("BigData",2020,25.0)
print(tuple._1) ----> BigData //使用下划线“_”加上1,来访问元组的元素
print(tuple._2) ----> 2020
print(tuple._3) ----> 25.0
3).序列(Sequence)--- 列表(List)
- 列表:一种共享相同类型的不可变的对象序列。定义在scala.collection.immutable
- 不同于java的java.util.List,scala的List一旦被定义,其值就不能改变,因此声明List时必须被初始化
var strList = List("BigData","Hadoop","Spark")
//列表有头部(head)和尾部(tail)的概念
print(strList.head)------->"BigData"
print(strList.tail)------->("Hadoop","Spark")
//列表的插入(是新建一个列表)
val otherList = "Apache"::strList //使用::或者+:,插在最后的用:+
print(otherList) ---> ("Apache","BigData","Hadoop","Spark")
3.1).序列(Sequence)--- 向量(Vector)
- Vetor可以实现所有访问操作都是常数时间
val vec1 = Vector(1,2) //插入方法于List一样
v
4).集合(Set)
- 集合包括可变集和不可变集,分别位于scala.collection.mutable包和scala.collection.immutable包,缺省情况下创建的是不可变集
//默认下,是不可变。不会报错是mySet的地址已经改变,指向新的Set,所以var不会报错,val报错(这里的var与val不是影响因素)
var mySet = Set("Hadoop","Spark")
mySet += "Scala"
//可变集
//set可变,则+=等效于在原有基础上新增一个元素。mySet的地址不变,还是指向原来的set。所以用val不会报错
import scala.collection.mutable.Set
val myMutableSet = Set("Database","BigData")
myMutableSet += "Cloud"