在 Scala 中查詢元素的陣列大小
Suraj P
2023年1月30日
本文將解釋如何在陣列中查詢元素的大小。首先,讓我們瞭解如何獲取陣列的大小,然後擴充套件該概念以獲取陣列中存在的元素的大小。
Scala 中的 length
和 size
運算子
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
運算子來獲取陣列的長度。
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
,並且沒有 length
或 size
。如果我們嘗試使用它們,我們會得到錯誤。
示例程式碼:
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