Encuentra el tamaño de matriz de un elemento en Scala

Suraj P 30 enero 2023
  1. Operador length y size en Scala
  2. Obtenga el tamaño del elemento dentro de un array en Scala
Encuentra el tamaño de matriz de un elemento en Scala

Este artículo explicará cómo encontrar el tamaño de un elemento en un array. Primero, comprendamos cómo obtener el tamaño del array y luego extender ese concepto para obtener el tamaño de los elementos presentes dentro del array.

Operador length y size en Scala

  1. operador length

Sintaxis:

array_name.length

Podemos usar el operador length de Scala para calcular la longitud del array en Scala. Devuelve el número de elementos en un array.

Pongamos un ejemplo para entenderlo mejor.

Código de ejemplo:

object MyClass {

    def main(args: Array[String]) {


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


    }
}

Producción :

4

Hemos declarado un array myArr, que contiene 4 elementos y un elemento es un array. Luego hemos usado el operador length para obtener la longitud del array.

  1. operador size

Podemos usar la propiedad size del array para obtener su tamaño. Devuelve el número de elementos que contiene el array.

Es bastante similar a la propiedad length de un array.

Sintaxis:

array_name.size

Veamos un ejemplo para entenderlo mejor.

Código de ejemplo:

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)

    }
}

Producción :

4
3
4

En el código anterior, hemos declarado tres matrices con algunos elementos y hemos utilizado el operador size para obtener sus respectivos tamaños.

Obtenga el tamaño del elemento dentro de un array en Scala

Cuando creamos un array de diferentes elementos, se crea con java.io.Serializable.

Ejemplo:

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

Ahora bien, si nos referimos al 2º elemento de myArr, Array(11,22,33), su referencia será Serializable, y no tiene length ni size. Y si intentamos usarlos, obtendremos el error.

Código de ejemplo:

object MyClass {

    def main(args: Array[String]) {


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


    }
}

Salida: Podemos ver que obtenemos el error.

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

Para arreglar esto, tenemos que encasillar explícitamente el segundo elemento del array usando asInstanceOf.

Código de ejemplo uno:

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)


    }
}

Salida: Podemos ver que obtenemos el tamaño del segundo elemento del array myArr.

3

En el código anterior, usando la condición if, primero, verificamos el tipo y la instancia del segundo elemento del array, y luego usamos asInstanceOf para encasillar y luego usamos el operador size para obtener su tamaño .

Código de ejemplo dos:

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)


    }
}

Producción :

4
Autor: 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

Artículo relacionado - Scala Array