배열

Anna·2024년 6월 16일
0

코틀린

목록 보기
26/28
post-thumbnail

배열

배열은 0부터 시작되는 인덱스 번호로 관리


arrayOf

배열을 생성할 때는 arrayOf(값들) 함수를 이용한다.

arrayOf는 다양한 값을 담을 수 있다.

담을 값의 자료형을 제한하고 싶다면 자료형arrayOf형태의 함수를 사용한다.

arrayOf<제네릭타입>도 가능하다.

val array1 = arrayOf(10, 20, 30, 40, 50)
val array2 = arrayOf(10, 11.1, "문자열", true)   //특정 타입을 지정안했으면 섞어도 OK, 권장하지 않음. 
//특정 타입 지정 
val array3 = intArrayOf(10, 20, 30, 40, 50)
val array4 = doubleArrayOf(11.11, 22.22, 33.33, 44.44, 55.55)
val array5 = arrayOf<Boolean>(true, true, false, false)
val array6 = arrayOf<String>("Hello", "Kotling")

StringArray는 존재하지 않다. → Array<String>, arrayOf<String>으로 사용


Array

Array클래스를 통해 직접 객체를 생성할 수 있다.

Array(개수, {식}) → 람다식으로

val array6 = Array(5, {0}) //[0, 0, 0, 0, 0]
val array7 = Array(5, {it}) //[0, 1, 2, 3, 4] 
val array8 = Array(5, {it * 2}) //[0, 2, 4, 6, 8]

반복문 - 배열

배열이 가지고 있는 값의 수 만큼 반복하여 값을 사용할 수 있음

    val array1 = arrayOf(10, 20, 30, 40, 50)

    //반복문
    for (item in array1) // array1의 각 요소를 item에 저장하면서 반복
    {
        println("array1 : $item") 
    }

다 차원 배열

배열 안에 배열이 있는 것

    //3개의 값을 가지고 있는 배열
    val array9 = arrayOf(10, 20, 30)
    println("array9 : ${array9}") //배열에 대한 정보
    println("array10 : ${array9.contentToString()}") //배열 내부 값 출력

    //3개의 배열을 가지고 있는 배열
    val array10 = arrayOf(arrayOf(10, 20, 30), arrayOf(40, 50, 60), arrayOf(70, 80, 90))
    println("array10 : ${array10}") //전체 배열에 대한 정보
    println("array10 : ${array10.contentToString()}") //전체 배열 안에 있는 배열들의 정보
    println("array10 : ${array10.contentDeepToString()}") //배열 수까지 출력
    
    
    //결과
array9 : [Ljava.lang.Integer;@1cd072a9
array9 : [10, 20, 30]
array10 : [[Ljava.lang.Integer;@3ac3fd8b
array10 : [[Ljava.lang.Integer;@5594a1b5, [Ljava.lang.Integer;@6a5fc7f7, [Ljava.lang.Integer;@3b6eb2ec]
array10 : [[10, 20, 30], [40, 50, 60], [70, 80, 90]]

다 차원 배열 - 반복문

 		//외부 루프는 array10의 각 내부 배열(또는 리스트)을 순회하고, 
    for(item1 in array10) //array10의 각 배열을 item1에 저장하면서 반복 
    {
        //내부 루프는 해당 배열(또는 리스트)의 각 요소를 순회합니다.
        for (item2 in item1) //각 배열의 요소를 item2에 저장하면서 반복
        {
            println("item2 : ${item2}")
        }
    }  
    
//결과 
item2 : 10
item2 : 20
item2 : 30
item2 : 40
item2 : 50
item2 : 60
item2 : 70
item2 : 80
item2 : 90

배열 요소 접근

배열은 0부터 시작하는 인덱스 번호로 이용해 관리

  1. 배열[index] = 값

접근하고자 하는 배열에 인덱스를 붙여 접근

val array1 = arrayOf(10, 20, 30, 40, 50)

println("array1 : ${array1[0]}")
println("array1 : $array1[1]")  //$array1까지만 변수 취급, {} 사용해야함,
    

//결과
array1 : 10
array1 : [Ljava.lang.Integer;@1cd072a9[1]
  1. 배열.get(index)

get은 해당 인덱스의 요소를 가져온다.

println("array1 : ${array1.get(0)}")
println("array1 : ${array1.get(1)}")
    
//결과
array1 : 10
array1 : 20
  1. 배열.set(index, 값)

특정 인덱스에 값을 설정하여 해당 인덱스 요소를 변경

println("array1 : ${array1.contentToString()}")
array1[0] = 100  //0번에 100으로 변경
array1.set(1, 200)  //1번에 200으로 변경
println("array1 : ${array1.contentToString()}")

//결과
array1 : [10, 20, 30, 40, 50]
array1 : [100, 200, 30, 40, 50]

배열 요소 개수

size프로퍼티를 사용하면 배열이 관리하는 요소의 개수를 파악

println("array1 size : ${array1.size}")
//array1 size : 5

0개의 댓글