3.scala容器

rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">

3.scala容器

3.1数组

(1) 定长数组(Array)

//直接声明使用
val array = Array("a","b","c")

//设置数组长度并赋值
val array = new Array[String](3)
array(0) = "a"
array(1) = "b"
array(2) = "c"

(2) 数组缓冲(ArrayBuffer)
数组缓冲是一种可变的数组,类似于Java中的ArrayList,但是ArrayBuffer提供了非常丰富的api

//声明
import scala.collection.multable.ArrayBuffer
val buf = new ArrayBuffer[Int]()

//添加单个元素
buf += 1

//添加多个元素
buf ++= (2,3,4)

//追加一个数组
buf ++= Array(5,6,7)

更多操作可以参考API文档

(3)数组的高级API

//数组内元素求和
Array(1,3,5).sum
//取最大值
Array(1,2,4).max
//排序
val newArray = Array(3,2,5,7,1).sortWith(_>_)

可以自定义排序方法,或者使用scala提供的排序方法,如:

val a = Array(3,2,5,7,1)
//使用快排
scala.util.Sorting.quickSort(a) //不会产生新的数组,原来数组中的元素位置改变

注意:ArrayBuffer不能排序,因为数组缓冲中的元素个数不确定。

(4)与Java互操作
java.util.List转化为scalaArrayBuffer:import scala.collection.JavaConversions.asScalaBuffer
ArrayBuffer转java List: import scala.collection.JavaConversions.bufferAsJavaList

3.2映射

scala中映射也分可变映射和不可变映射。

//创建一个不可变映射
val rank = Map("zs" -> 3,"ls" -> 4)

//创建一个可变的映射,两种方法
val rank = scala.collection.multable.Map("zs" -> 3,"ls" -> 4)
val rank  = new scala.collection.multable.Map[String,Int]()

//添加删除元素
rank +=("ww" -> 5,"zl" -> 6)
rank -= "ww"

//更新可变映射
rank("zs") = 30 

//迭代映射
for((k,v) <- map){ some code}
3.3元组

元组是一种能存放不同数据类型的容器,一般声明如下:

//声明
val tuple = (11.11,12,"bb")

//遍历
tuple.foreach{}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值