Scala で要素の配列サイズを求める

Suraj P 2023年1月30日
  1. Scala の length および size 演算子
  2. Scala のアレイ内の要素のサイズを取得する
Scala で要素の配列サイズを求める

この記事では、配列内の要素のサイズを求める方法について説明します。まず、アレイのサイズを取得する方法を理解してから、その概念を拡張して、アレイ内に存在する要素のサイズを取得しましょう。

Scala の length および size 演算子

  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

4つの要素を含み、1つの要素が配列である配列 myArr を宣言しました。次に、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

上記のコードでは、いくつかの要素を含む 3つの配列を宣言し、size 演算子を使用してそれぞれのサイズを取得しました。

Scala のアレイ内の要素のサイズを取得する

さまざまな要素の配列を作成すると、java.io.Serializable で作成されます。

例:

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

ここで、myArr の 2 番目の要素である 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 を使用して配列の 2 番目の要素を明示的にタイプキャストする必要があります。

コード例 1:

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 の 2 番目の要素のサイズを取得していることがわかります。

3

上記のコードでは、if 条件を使用して、最初に配列の 2 番目の要素のタイプとインスタンスを確認し、次に asInstanceOf を使用してタイプキャストし、次に size 演算子を使用してそのサイズを取得します。

コード例 2:

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