배열은 0부터 시작되는 인덱스 번호로 관리
배열을 생성할 때는 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(개수, {식})
→ 람다식으로
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부터 시작하는 인덱스 번호로 이용해 관리
접근하고자 하는 배열에 인덱스를 붙여 접근
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]
get
은 해당 인덱스의 요소를 가져온다.
println("array1 : ${array1.get(0)}")
println("array1 : ${array1.get(1)}")
//결과
array1 : 10
array1 : 20
특정 인덱스에 값을 설정하여 해당 인덱스 요소를 변경
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