在 Scala 中查找元素的数组大小

Suraj P 2023年1月30日
  1. Scala 中的 lengthsize 运算符
  2. 在 Scala 中获取数组内元素的大小
在 Scala 中查找元素的数组大小

本文将解释如何在数组中查找元素的大小。首先,让我们了解如何获取数组的大小,然后扩展该概念以获取数组中存在的元素的大小。

Scala 中的 lengthsize 运算符

  1. length 运算符

语法:

array_name.length

我们可以使用 Scala 的 length 运算符来计算 Scala 中数组的长度。它返回数组中元素的数量。

让我们举个例子来更好地理解它。

示例代码:

object MyClass {

    def main(args: Array[String]) {


       val myArr = Array("a", "b", Array(1,2,3,4,5,6), "c")
       println(myArr.length)


    }
}

输出:

4

我们已经声明了一个数组 myArr,它包含 4 个元素,其中一个元素是一个数组。然后我们使用 length 运算符来获取数组的长度。

  1. size 运算符

我们可以使用数组的 size 属性来获取它的大小。它返回数组包含的元素数。

它与数组的 length 属性非常相似。

语法:

array_name.size

让我们看一个例子来更好地理解它。

示例代码:

object MyClass {

    def main(args: Array[String]) {

    val myArr1 = Array(3, 2, 5, 7)
    val fruits = Array("Apple", "Orange",Array("watermelon","tomato"))
    val rate : Array[Double] = Array(4.6, 7.8, 9.5, 4.5)

    println(myArr1.size)
    println(fruits.size)
    println(rate.size)

    }
}

输出:

4
3
4

在上面的代码中,我们声明了三个包含一些元素的数组,并且我们使用了 size 运算符来获取它们各自的大小。

在 Scala 中获取数组内元素的大小

当我们创建一个不同元素的数组时,它是用 java.io.Serializable 创建的。

例子:

myArr = Array("a", "b" , Array(11,22,33), "c")

现在,如果我们引用 myArr 的第二个元素 Array(11,22,33),它的引用将是 Serializable,并且没有 lengthsize。如果我们尝试使用它们,我们会得到错误。

示例代码:

object MyClass {

    def main(args: Array[String]) {


       val myArr = Array("a", "b", Array(11,22,33), "c")
       println(myArr(2).size)


    }
}

输出:我们可以看到我们得到了错误。

error: value size is not a member of java.io.Serializable
       println(myArr(2).size)

为了解决这个问题,我们必须使用 asInstanceOf 显式地对数组的第二个元素进行类型转换。

示例代码一:

object MyClass {

    def main(args: Array[String]) {


       val myArr = Array("a", "b", Array(11,22,33), "c")

      if (myArr(2).isInstanceOf[Array[Int]])
        println(myArr(2).asInstanceOf[Array[Int]].size)


    }
}

输出:我们可以看到我们得到了数组 myArr 的第二个元素的大小。

3

在上面的代码中,使用 if 条件,首先我们检查数组第二个元素的类型和实例,然后我们使用 asInstanceOf 进行类型转换,然后使用 size 运算符获取它的大小.

示例代码二:

object MyClass {

    def main(args: Array[String]) {


       val myArr = Array("a", List("tony","stark","hulk","iron man"), "c")

      if (myArr(1).isInstanceOf[List[String]])
        println(myArr(1).asInstanceOf[List[String]].size)


    }
}

输出:

4
作者: Suraj P
Suraj P avatar Suraj P avatar

A technophile and a Big Data developer by passion. Loves developing advance C++ and Java applications in free time works as SME at Chegg where I help students with there doubts and assignments in the field of Computer Science.

LinkedIn GitHub

相关文章 - Scala Array