Scala学习——数据结构
一、定长数组
1.先声明长度,再填充元素。【索引用圆括号】
2.直接指定元素
二、变长数组
1.生成变长数组
val c = scala.collection.mutable.ArrayBuffer[String]()
c += "python"
c += ("java", "scala")
for (i <- c)
println(i)
三、list
1.定义一个list
2.一个列表是有头和尾的。
第一个元素为头,其余均为尾。
3.一个空的列表是Nil
4.在列表头部添加数据,使用操作符 ::
5.合并多个list,使用操作符 :::
四、元组
元组是不同类型的值的聚集。元组和列表不同,列表中各个元素必须是相同类型,而元组可以包含不同类型的元素。
圆括号括起来的即元组。
五、集合
集(set)是不重复元素的集合。列表中的元素是按照插入的先后顺序来组织的,但是,”集”中的元素并不会记录元素的插入顺序,而是以“哈希”方法对元素的值进行组织,所以,它允许你快速地找到某个元素。【与Python中集合的概念类似】
1.向set内添加元素【如果定义为常量set,则无法添加元素】
六、Map映射,类似Python字典。
1.不可变映射
2.不可变映射添加新的映射【无法更新键值对应的值】
var person = Map("name" -> "peter","gender" ->"male","age"->25)
println(person)
person += "location"->"bj"
println(person)
3.可变映射
可以随意添加以及更新键值对。
//引入可变映射
import scala.collection.mutable.Map
val person = Map("name" -> "peter","gender" ->"male","age"->25)
println(person)
person += "location"->"bj"
println(person)
person("name")="white"
println(person)
4.遍历映射
(1)遍历键值对
val person = Map("name" -> "peter","gender" ->"male","age"->25)
for ((k,v) <- person) println(k,v)
(2)遍历键值
val person = Map("name" -> "peter","gender" ->"male","age"->25)
for (k <- person.keys) println(k)
println(person.keys)
(3)遍历值
val person = Map("name" -> "peter","gender" ->"male","age"->25)
for (v <- person.values) println(v)
println(person.values)
七、迭代器
迭代器(Iterator)不是一个集合,但是,提供了访问集合的一种方法。【类似python中的一个可迭代对象】
1.迭代器的两个基本操作:
(1)next:可以返回迭代器的下一个元素
(2)hasnext:用于检测是否还有下一个元素