반응형
코틀린에서 배열은 Array 클래스로 표현됩니다, 그 외에 여어 가지 묶음 데이터를 표현하는 컬렉션이 있습니다.
기본적인 배열 생성
val numbers = arrayOf(4,5,6,7) // 정수형으로 초기화된 배열
val animals = arrayOf("Cat", "Dog", "Lion") // 문자열형으로 초기화된 배열
다차원 배열
val array1 = arrayOf(1,2,3)
val array2 = arrayOf(4,5,6)
val array3 = arrayOf(7,8,9)
val arr2d = arrayOf(array1, array2, array3)
arr2d 배열 size = 3 x 3
1 | 2 | 3 |
4 | 5 | 6 |
7 | 8 | 9 |
val arr2d = arrayOf(arrayOf(1,2,3), arrayOf(4,5,6), arrayOf(7,8,9))
// 2차원 배열 출력
for(arr in arr2d){
for(e in arr){
print(e)
}
println()
}
//결과
//123
//456
//789
배열에 여러 가지 자료형 혼합하기
val mixArr = arrayOf(4,5,7,3,"Chike",false) // 정수, 문자열, Boolean 혼합
만일 배열에서 특정 자료형을 제한하려면
arrayOf<자료형>() 또는
val arr = arrayOf<Int>(1,2,3,4)
자료형 + ArrayOf() 형태로 나타낼 수 있습니다.
val arr = intArrayOf(1,2,3,4)
배열 선언 및 사용 예제
fun main(){
val arr = intArrayOf(1,2,3,4,5)
println("arr: ${Arrays.toString(arr)}") // Arrays.toString()은 배열의 내용을 문자열로 변환 // arr: [1, 2, 3, 4, 5]
println("size: ${arr.size}") // size는 배열의 크기 // size: 5
println("sum(): ${arr.sum()}") // sum() 배열의 합 계산 // sum(): 15
//게터에 의한 접근과 대괄호 연산자 표기법
println(arr.get(2)) // 3
println(arr[2]) // 3
//세터에 의한 접근과 대괄호 연산자 표기법
arr.set(2,7) // 2번 인덱스 위치에 7로 교체
arr[2]=7 // 2번 인덱스 위치에 7로 교체
for (i in 0..arr.size-1){
println("arr[$i] = ${arr[i]}")
}
//for문 결과
//arr[0] = 1
//arr[1] = 2
//arr[2] = 7
//arr[3] = 4
//arr[4] = 5
}
개수가 많은 배열 선언
var a = arrayOfNulls <Int>(100) // 100개의 null로 채워진 정수 배열
var a = Array(100,{0}) // 0으로 채워진 배열
배열 요소 추가하고 잘라내기
arr.plus(value) 요소 추가 후 새 배열 생성
arr.sliceArray(0..2) 범위 만큼 잘라내 새 배열 생성
fun main(){
val arr1 = intArrayOf(1,2,3,4,5) // 5개로 고정된 배열
val arr2 = arr1.plus(6) // 하나의 요소를 추가한 새 배열 생성
println(Arrays.toString(arr2)) // [1, 2, 3, 4, 5, 6]
val arr3 = arr1.sliceArray(0..2) // 필요한 범위를 잘라내 새 배열 생성
println(Arrays.toString(arr3)) // [1, 2, 3]
}
배열 관련 API
arr.first() // 첫 번째 요소 확인
arr.last() // 마지막 요소 확인
arr.indexOf(3) // 요소 3의 인덱스 출력
arr.average() // 배열의 평균 값 출력
arr.count() // 요소 개수 세기
arr.sortedArray()// 오름차순 정렬
arr.sortedArrayDescending()// 내림차순 정렬
arr.sort(1,3) // sort(fromIndex, toIndex)
arr.sorted() // List로 반환
arr.sortedDescending()// List로 반환
arr.filter { } // 배열 필터링하기
arr.minBy { } // 배열 가장 작은 값 골라내기
arr.maxBy { } // 배열 가장 큰 값 골라내기
반응형
'Do it 코틀린 프로그래밍' 카테고리의 다른 글
코틀린 컬렉션(1) - 기본 구조 (1) | 2020.08.23 |
---|---|
코틀린 문자열 (0) | 2020.08.22 |
코틀린 제네릭 (0) | 2020.08.20 |
코틀린 상속과 다형성 (2) | 2020.08.19 |
코틀린 클래스와 객체의 정의 (0) | 2020.08.18 |
댓글