加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Scala数组操作

发布时间:2020-12-16 09:27:06 所属栏目:安全 来源:网络整理
导读:数组操作 初始化固定长度的数组 // 初始化长度为10的数组val array = new Array[Int](10)// 初始化创建含有hello与Scala的数组val s = Array("hello","scala") 创建可变的数组(类似java的集合) Scala中创建长度可变的数组,类似与java中的ArrayList一样Scala

数组操作

  • 初始化固定长度的数组
// 初始化长度为10的数组
val array = new Array[Int](10)
// 初始化创建含有hello与Scala的数组
val s = Array("hello","scala")
  • 创建可变的数组(类似java的集合)
Scala中创建长度可变的数组,类似与java中的ArrayList一样Scala提供了ArrayBuffer,下面是ArrayBuffer的用法:
// 创建集合等同于下面的new ArrayBuffer[Int]()
val b = ArrayBuffer[Int]()
new ArrayBuffer[Int]()
// 集合添加元素类似与java中的list.add()多次调用添加函数
b += (1,2,3,4,5,6)
// 可以追加新的集合元素类似java中的list.addAll()
b ++=Array(7,8,9,10)
// 移除前//5个元素
 b.trimStart(5)
 /**
  * 数组尾部删除或者添加元素是非常快,但是中间 * 插入元素或者移除元素,操作较慢
  */
  val c = new ArrayBuffer[Int]()
  c+=(1,3)
  // 在索引2处插入元素6
  c.insert(2,6)// ArrayBuffer(1,6,3)
  // 删除索引为2元素
  c.remove(2)
  // 删除索引1后一个元素
  c.remove(1,1)
  有时候创建元素,不知道存储多少元素可以创建数组缓存ArrayBuffer,然后调用toArray方法将缓冲区间转为Array(类似于java中StringBuffer.toString方法)
  • 遍历数组和数组缓冲
val a = ArrayBuffer[Int]()
    a+=(1,6)
    //遍历数组(变量i取值从0到a.length-1)
    for(i<- 0 until a.length) println(a(i))
    println(a(i)
    // 遍历偶数下标索引元素
     for(i<- 0 until (a.length,2)) println(a(i))
    // 倒着遍历索引
    for(i<- (0 until a.length).reverse) println(a(i))
    // yield元素填充
    val  result =for (e <- list) yield e *2
    // 数组转换
    val list = Array(1,4)
    // yield元素填充
    val result = for (e <- list) yield e * 2
    println(result.toBuffer)
    // 舍弃偶数元素
    val res = for (e <- list if e % 2 == 0) yield e
    println(res.toBuffer)
    // 也可以使用函数式编程使用filter和Map
    val req = a.filter(_ % 2 == 0).map(2 * _)
  }
  • Scala的常用算法
Scala中有计算求和和排序
     val list = Array(1,4)
    // 求和,求数组最大值,排序,而排序并不会影响原有的数组
    println(list.sum,list.max,list.sorted.toBuffer)
方法 方法描述
def append(elems:A*):Unit 方法接受多个类型为A的元素,例如b.append(1,2)将对b追加2个元素
def count(p:(A)=>Boolean):Int 方法接受一个布尔值表达式,例如a.count(_>0)将会统计多个正数

方法demo

val list = Array(8,1,4)
    val bs = list.sorted.toBuffer
    bs.append(1,2)
    println(bs)
    // 统计集合大于4的元素个数
    println( bs.count(_ > 4))

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读