在 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