数据结构
- Scala集合简介
- Scala同时支持不可变集合和可变集合 不可变集合可以安全并发访问
- 不可变集合:scala.collection.immutable
- 可变集合:scala.collection.mutable
- Scala默认采用不可变集合,对于几乎所有的集合类,Scala都提供了可变与不可变版本
- Scala几个有三大类:序列Seq序列(有序性的,Linear、Seq)、集(Set)、映射(Map [key->value]),所有的的集合都扩展自Iterable特质
不可变集合
可变集合
Java 集合 和 Scala 集合相互转换
- 添加 import scala.jdk.CollectionConverters._
- 使用 asJava 和 asScala 相互转化
- 转化规则
scala.collection.Iterable <=> java.lang.Iterable
scala.collection.Iterable <=> java.util.Collection
scala.collection.Iterator <=> java.util.{ Iterator, Enumeration }
scala.collection.mutable.Buffer <=> java.util.List
scala.collection.mutable.Set <=> java.util.Set
scala.collection.mutable.Map <=> java.util.{ Map, Dictionary }
scala.collection.mutable.ConcurrentMap <=> java.util.concurrent.ConcurrentMap
scala.collection.Seq => java.util.List
scala.collection.mutable.Seq => java.util.List
scala.collection.Set => java.util.Set
scala.collection.Map => java.util.Map
java.util.Properties => scala.collection.mutable.Map[String, String]
元组
- 简介:元组也是可以理解为一个容器,可以存放各种相同或不同类型的数据 类似C++结构体
注:元组种最大只能22个元素
- 元组的创建
//元组创建 val tuple = (1,2,"test",3.4,5.7f,'a') println(tuple.getClass.getName) //元组调用 println(tuple._1+"---"+tuple._5) println(tuple.productElement(3)) //元组遍历 for(item<-tuple.productIterator){ println(item) }
List
- 在Java 中List 是一个接口,真正存放数据是ArrayList,Scala的List 可以直接存放数据,就是一个object,默认情况下Scala 的List 是不可变的,List 属于序列Seq
Array 数组
- 定长数组
- 这里的数组等同于 Java 中的数组,中括号的类型就是数组的类型
//创建Array方式1
val arr1 = new Array[Any](10)
//创建Array方式2
val arr2 = Array(1,"3",3.3,'w')
//修改
arr1(3) = "333"
//遍历
for(i <- arr1){
println("i====="+i)
}
- 变长数组