zoukankan      html  css  js  c++  java
  • 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,2,3)
      // 在索引2处插入元素6
      c.insert(2,6)// ArrayBuffer(1, 2, 6, 3)
      // 删除索引为2元素
      c.remove(2)
      // 删除索引1后一个元素
      c.remove(1,1)
      有时候创建元素,不知道存储多少元素可以创建数组缓存ArrayBuffer,然后调用toArray方法将缓冲区间转为Array(类似于java中StringBuffer.toString方法)
    
    • 遍历数组和数组缓冲
        val a = ArrayBuffer[Int]()
        a+=(1,2,3,4,5,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, 2, 3, 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, 2, 3, 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, 5, 1, 2, 3, 4)
        val bs = list.sorted.toBuffer
        bs.append(1,2)
        println(bs)
        // 统计集合大于4的元素个数
        println( bs.count(_ > 4))
    
  • 相关阅读:
    Maven笔记之面试题合集
    Maven笔记之核心概念及常用命令
    UML中的关系
    RocketMq核心概念
    linux安装rocketMq(包括安装maven,JDK)
    linux安装JDK,配置环境变量
    ASP.NET Core读取appsettings.json配置文件信息
    ASP.NET Core获取客户端IP地址
    ASP.NET Core根据环境切换NLog配置
    ASP.NET Core使用NLog记录日志
  • 原文地址:https://www.cnblogs.com/codegeekgao/p/9611730.html
Copyright © 2011-2022 走看看