Trouver la taille du tableau d'un élément dans Scala
-
Opérateur
length
etsize
en Scala - Obtenir la taille de l’élément à l’intérieur d’un tableau dans Scala
Cet article explique comment trouver la taille d’un élément dans un tableau. Tout d’abord, comprenons comment obtenir la taille du tableau, puis étendons ce concept pour obtenir la taille des éléments présents à l’intérieur du tableau.
Opérateur length
et size
en Scala
- Opérateur
length
Syntaxe:
array_name.length
Nous pouvons utiliser l’opérateur length
de Scala pour calculer la longueur du tableau dans Scala. Il renvoie le nombre d’éléments dans un tableau.
Prenons un exemple pour mieux comprendre.
Exemple de code :
object MyClass {
def main(args: Array[String]) {
val myArr = Array("a", "b", Array(1,2,3,4,5,6), "c")
println(myArr.length)
}
}
Production:
4
Nous avons déclaré un tableau myArr
, qui contient 4 éléments et un élément est un tableau. Ensuite, nous avons utilisé l’opérateur length
pour obtenir la longueur du tableau.
- opérateur
size
On peut utiliser la propriété size
du tableau pour obtenir sa taille. Il renvoie le nombre d’éléments que contient le tableau.
Elle est assez similaire à la propriété length
d’un tableau.
Syntaxe:
array_name.size
Voyons un exemple pour mieux comprendre.
Exemple de code :
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)
}
}
Production:
4
3
4
Dans le code ci-dessus, nous avons déclaré trois tableaux avec certains éléments, et nous avons utilisé l’opérateur size
pour obtenir leurs tailles respectives.
Obtenir la taille de l’élément à l’intérieur d’un tableau dans Scala
Lorsque nous créons un tableau d’éléments différents, il est créé avec java.io.Serializable
.
Exemple:
myArr = Array("a", "b" , Array(11,22,33), "c")
Maintenant, si nous nous référons au 2ème élément de myArr
, Array(11,22,33)
, sa référence sera Serializable
, et il n’y a pas de length
ou de size
pour cela. Et si nous essayons de les utiliser, nous obtiendrons l’erreur.
Exemple de code :
object MyClass {
def main(args: Array[String]) {
val myArr = Array("a", "b", Array(11,22,33), "c")
println(myArr(2).size)
}
}
Sortie : nous pouvons voir que nous obtenons l’erreur.
error: value size is not a member of java.io.Serializable
println(myArr(2).size)
Pour résoudre ce problème, nous devons transtyper explicitement le deuxième élément du tableau en utilisant asInstanceOf
.
Exemple de code un :
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)
}
}
Sortie : Nous pouvons voir que nous obtenons la taille du second élément du tableau myArr
.
3
Dans le code ci-dessus, en utilisant la condition if
, nous vérifions d’abord le type et l’instance du 2e élément du tableau, puis nous utilisons asInstanceOf
pour transtyper, puis utilisons l’opérateur size
pour obtenir sa taille.
Exemple de code deux :
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)
}
}
Production:
4