精华内容
下载资源
问答
  • Scala数组遍历

    千次阅读 2020-03-12 15:10:55
  • Scala数组遍历:使用for和foreach

    千次阅读 2020-04-16 18:52:17
    使用匿名函数简化

    在这里插入图片描述

    使用匿名函数简化

    在这里插入图片描述

    展开全文
  • 文章目录概念定长数组概念语法代码示例变长数组概念定义语法代码示例添加/修改/删除元素代码示例遍历数组 概念 scala数组的概念是和Java类似,可以用数组来存放一组数据。scala中,有两种数组,一种是定长数组,...

    概念

    scala中数组的概念是和Java类似,可以用数组来存放一组数据。scala中,有两种数组,一种是定长数组,另一种是变长数组

    定长数组

    概念
    • 定长数组指的是数组的长度不允许改变
    • 数组的元素可以改变
    语法
    // 在scala中,数组的泛型使用`[]`来指定
    // 使用`()`来获取元素
    // 通过指定长度定义数组
    val/var 变量名 = new Array[元素类型](数组长度)
    
    // 用元素直接初始化数组
    val/var 变量名 = Array(元素1, 元素2, 元素3...)
    
    代码示例
    //方式一
    //创建
    val a = new Array[Int](100)
    //赋值
    a(0) = 110
    //输出
    println(a(0))
    
    //方式二
    // 定义包含jave、scala、python三个元素的数组
    val a = Array("java", "scala", "python")
    //获取数组的长度
    a.length
    

    在这里插入图片描述

    变长数组

    概念

    变长数组指的是数组的长度是可变的,可以往数组中添加、删除元素

    定义

    创建变长数组,需要提前导入ArrayBuffer类
    import scala.collection.mutable.ArrayBuffer

    语法

    //创建空的可变长度数组
    val/var a = ArrayBuffer[元素类型]()
    //创建带有初始元素的ArrayBuffer
    val/var a = ArrayBuffer(元素1,元素2,元素3....)
    

    代码示例

    //导包
    import scala.collection.mutable.ArrayBuffer
    //定义一个长度为0的整型变长数组
    val a = ArrayBuffer[Int]()
    //定义一个包含"hadoop", "storm", "spark" 三个元素的变长数组
    val a = ArrayBuffer("hadoop", "storm", "spark")
    

    在这里插入图片描述

    添加/修改/删除元素

    • 使用+=添加元素

    • 使用-=删除元素

    • 使用++=追加一个数组到变长数组

    • remove(从第几个索引开始 , 删除几个)方法 如果只删除一个第二个参数可以省略
      例如 删除数组从索引而开始后面的三个元素 : arr1.remove(0,3)

    • insert(从第几个索引开始插入 , 插入的数据,可以是多个)方法
      例如 把1,2,3插入到arr1数组开头 位置 : arr1.insert(0,1,2,3)

    代码示例
    //往刚创建的 变长数组a 中添加 "flume" 这个元素
    a += "flume"
    // 删除一个元素
    a -= "hadoop"
    // 追加一个数组 该数组中包含 hive 和 sqoop 两个属性
     a ++= Array("hive", "sqoop")
    

    在这里插入图片描述

    遍历数组

    一般使用两种方式

    1. 使用for表达式直接遍历数组中的元素
    2. 使用索引遍历数组中的元素

    直接遍历

    代码示例
    //定义一个数组 
    val a: Array[Int] =Array(1,2,3,4,5)
    //直接遍历输出
        for (i <- a ) {
            println(i)
        }
    

    在这里插入图片描述

    根据索引遍历

    代码示例
    //说明
    	//0 until n——生成一系列的数字,包含0,不包含n
    	//0 to n ——包含0,也包含n
    	//定义一个数组
    	val a: Array[Int] =Array(1,2,3,4,5)
    	//方式一
    	for (i <- 0 to a.length-1) {
            println(i)
        }
    	//方式二
        for ( i <- 0 until a.length){
            println(a(i));
        }
    	//方式三 indices 获取索引
        for (i <- a.indices) {
            println(a(i));
        }
    

    在这里插入图片描述

    数组常用算法

    scala中的数组封装了一些常用的计算操作,将来在对数据处理的时候,不需要我们自己再重新实现。以下为常用的几个算法:

    • 求和——sum方法
    • 求最大值——max方法
    • 求最小值——min方法
    • 排序——sorted方法

    求和

    数组中的sum方法可以将所有的元素进行累加,然后得到结果

    代码示例
    val b: Array[Int] =Array(1,2,3,4,5,6,7,8,9)
        println(b.sum)
    

    在这里插入图片描述

    求最大值

    数组中的max方法,可以获取到数组中的最大的那个元素值

    代码示例
    //定义一个数组
    val c: Array[Int] =Array(1,2,3,9,5,12,5,8,10)
    //输出最大值
    println(c.max)
    

    在这里插入图片描述

    求最小值

    数组的min方法,可以获取到数组中最小的那个元素值

    代码示例
    //输出最小值
    println(c.min)
    

    在这里插入图片描述

    排序

    数组的sorted方法,可以对数组进行升序排序。而reverse方法,可以将数组进行反转,从而实现降序排序

    代码示例
    //定义一个数组
    val c: Array[Int] =Array(1,2,3,9,5,12,5,8,10)
    //升序
    c.sorted
    //降序
    c.sorted.reverse
    

    在这里插入图片描述

    展开全文
  • object S_06_数组遍历 { def main(args: Array[String]): Unit = { val myArr = Array(1.9, 2.9, 3.4, 3.5) for (x <- myArr) { //打印所有元素 print(x + " ") } println("") var total = 0.0 // 求数组...

    数组的遍历

    一、 数组概念

    对于每一门编程语言来说,数组(Array)都是重要的数据结构之一,主要用来存储数据类型相同的元素。Scala 语言中提供的数组是用来存储固定大小的同类型元素,数组对于每一门编辑应语言来说都是重要的数据结构之一。

    声明数组变量并不是声明 number0、number1、…、number99 一个个单独的变量,而是声明一个就像 numbers 这样的变量,然后使用 numbers[0]、numbers[1]、…、numbers[99] 来表示一个个单独的变量。数组中某个指定的元素是通过索引来访问的。

    数组的第一个元素索引为0,最后一个元素的索引为元素总数减1。
    例题:

    1、定义一个整型数组,打印出所有元素、求数组总和、求最大值

    代码如下:

    object S_06_数组遍历 {
      def main(args: Array[String]): Unit = {
        val myArr = Array(1.9, 2.9, 3.4, 3.5)
    
        for (x <- myArr) { //打印所有元素
          print(x + " ")
        }
        println("")
        var total = 0.0  // 求数组总和
        for (i <- 0 to (myArr.length - 1)) {
          total = total + myArr(i)
        }
        println("sum=" + total)
    
        var max = myArr(0) //求最大值
        for (x <- myArr) {
          if (x > max) {
            max = x
          }
        }
        println("max=" + max)
      }
    
    }
    

    二、数组的转化:yield

    yield可进行数组转换,及按一定规则有原数组生成一个新数组,原数组不变。
    代码如下:

    object S_07_数组的转化 {
      def main(args: Array[String]): Unit = {
        // 定义一个数组
        val arr = Array(1, 2, 3, 4, 5, 6, 7, 8, 9)
        // 遍历数组,附加条件为偶数
        val newArr = for (a <- arr; if a % 2 == 0) yield a * 10
        for (x <- newArr) {
          print(x+" ")
        }
      }
    }
    

    三、数组之和

    定义一个普通函数sum,用于打印整型数组之和。

    object S_09_数组之和 {
      val a = Array(1, 2)
      val z = a(0)
      val s = a(1)
    
      def sum(x: Int, y: Int) = {
        x + y
      }
    
      def main(args: Array[String]): Unit = {
        println(sum(z, s))
      }
    }
    
    
    
    
    展开全文
  • 1 定长数组和变长数组 定长数组定义格式: val arr = new Array[T](数组长度) 变长数组定义格式: val arr = ArrayBuffer[T]() 注意需要导包:import scala.collection.mutable.ArrayBuffer 代码如下 import...
  • 由于Scala与Java都是运行在JVM中,双方可以互相调用,因此,Scala数组的底层实际上是Java数组。如字符串数组在底层就是Java的String[],整数数组在底层就是Java的Int[]。 数组初始化后,数组长度就固定下来了,...
  • 数组遍历 可以利用for循环来遍历数组或者数组缓冲 for(i )//变量i的取值范围是0到a.length -1 until是RichInt类的方法,返回所有小于(但不包括)上限的数字 例如:0 until 5 //Range(0,1,2,3,4) 注意:0 until...
  • scala遍历数组

    千次阅读 2020-02-09 18:31:33
    遍历数组 可以使用以下两种方式来遍历数组: 使用for表达式直接遍历数组中的元素 使用索引遍历数组中的元素 示例一 定义一个数组,包含以下元素1,2,3,4,5 使用for表达式直接遍历,并打印数组的元素 参考代码 scala&...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,573
精华内容 3,029
关键字:

scala数组遍历的方法