HOWTO · 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개의 요소를 포함하고 하나의 요소는 배열인 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

위의 코드에서는 일부 요소가 포함된 세 개의 배열을 선언했으며 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를 사용하여 배열의 두 번째 요소를 명시적으로 유형 변환해야 합니다.

예제 코드 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 배열의 두 번째 요소 크기를 알 수 있습니다.

3

위의 코드에서 if 조건을 사용하여 먼저 배열의 두 번째 요소의 유형과 인스턴스를 확인한 다음 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