zoukankan      html  css  js  c++  java
  • 3.scala容器

    3.scala容器

    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{}
    
  • 相关阅读:
    SpringBoot基础
    开始一个新的springboot项目checklist
    五项修炼: 终生学习者
    价值流分析-改进方法论
    伯努利方程
    会计语言
    svg蒙版mask
    从svg到计算机图形学
    xflux 调节屏幕色温
    处理器架构
  • 原文地址:https://www.cnblogs.com/bigdataer/p/6383580.html
Copyright © 2011-2022 走看看