Scala基础知识入门——集合
一、scala集合基本介绍
Scala同时支持不可变集合和可变集合
两个主要的包: 不可变集合:scala.collection.immutable 可变集合: scala.collection.mutable
Scala默认采用不可变集合,对于几乎所有的集合类,Scala都同时提供了可变(mutable)和不可变(immutable)的版本
Scala的集合有三大类:序列Seq、集Set、映射Map,所有的集合都扩展自Iterable特质 ,在Scala中集合有可变(mutable)和不可变(immutable)两种类型。
二、定长数组
定义 :① val arr1 = new ArrayInt ;② val arr1 = Array(1, 2)
添加元素 :① arr1(0)=1 ;② 通过遍历添加;
三、变长数组
定义 :val arr2 = ArrayBufferInt 赋值:arr2.append(7) arr2(0) = 7
注意 :每append一次,arr在底层会重新分配空间 ,进行扩容,arr2的内存地址会发生变化,也就成为新的ArrayBuffer
定长与变长互转
arr1.toBuffer //定长数组转可变数组
arr2.toArray //可变数组转定长数组
说明:
arr2.toArray 返回结果才是一个定长数组, arr2本身没有变化
arr1.toBuffer返回结果才是一个可变数组, arr1本身没有变化
Scala数组与Java List互转
val arr = ArrayBuffer("1", "2", "3") //Scala集合
import scala.collection.JavaConversions.bufferAsJavaList
val javaArr = new ProcessBuilder(arr) //Java集合
val arrList = javaArr.command() //Scala集合
Scala数组与Java数组的互转
import scala.collection.JavaConversions.asScalaBuffer
import scala.collection.mutable
// java.util.List ==> Buffer
val scalaArr: mutable.Buffer[String] = arrList
scalaArr.append("jack")
四、多维数组
定义 :val arr = Array.ofDim[Double](3,4)
//说明:
arr 是一个二维数组
有三个元素[一维数组]
每个一维数组存放4个值
//赋值
arr(1)(1) = 11.11
五、元祖Tuple
元组也是可以理解为一个容器,可以存放各种相同或不同类型的数据。就是将多个无关的数据封装为一个整体,称为元组注意:元组中最大只能有22个元素。
创建 : ① va