일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 노트북
- 코틀린
- 오버로딩
- Array
- HP
- go
- 함수
- var
- ListView
- 파이썬
- javascript
- 배열
- adapter
- 안드로이드
- as?
- Java
- 리스트 뷰
- 패널 교체
- 연산자
- Android
- 노트북 추천
- Kotlin
- 자바
- golang
- node.js
- js
- 싱글 스레드
- Overloading
- Python
- 자바스크립트
- Today
- Total
Bbaktaeho
Kotlin(코틀린) 5. 배열 본문
배열)
코틀린에는 배열이 Array 클래스로 정의되어 있다. 그리고 Array<String>처럼 배열에 저장되는 요소의 타입을 제네릭 타입으로 나타낸다.
대괄호는 배열을 선언할 때 사용하지 않고 배열의 각 요소를 읽거나 쓸 때만 사용한다.(자바와 다른 점)
첫 번째로 arrayOf() 함수를 사용하여 생성해보자 괄호 안에는 순서대로 요소가 들어간다.
1 2 3 4 | val arr = arrayOf(1,2,3) //arr[0]는 1 //arr[1]는 2 //arr[2]는 3 | cs |
arrayOf() 함수는 초기화를 해주지 않으면 안 된다. 만약 배열 요소가 null 값을 가질 수 있거나 또는 요소의 타입이 null 값을 허용하는 경우에는 arrayOfNulls<>() 함수를 사용해야 된다.
1 2 | val arr1 = arrayOf(1,2,3) val arr2 = arrayOfNulls<Int>(5) | cs |
생성자의 첫 번째 인자로는 size 이고 두 번째 인자로는 요소를 초기화하는 함수를 전달해야 한다. 지금은 람다식을 사용하여 간결하게 표현했다. (i 는 0부터 시작하며 1씩 5번 증가한다)
순서대로 "0", "1", "2", "3", "4" 로 초기화된다. 또 배열의 요소 타입을 나타내는 제네릭 타입은 생략해도 좋다.
1 | val arr4 = Array(6, { i -> i.toString() }) | cs |
참고로 배열의 모든 원소를 출력하고 싶을 때 반복문을 이용하는데 코틀린에서 forEach() 함수를 사용해보자
1 2 3 4 | fun main(args: Array<String>) { val arr3 = Array<String>(5) { i -> i.toString() } arr3.forEach { print(it) } } | cs |
순서대로 01234 가 출력될 것이다.
여기서 forEach의 it은 키워드이며 배열의 각 요소를 가르킨다.
여기서 forEach의 it은 키워드이며 배열의 각 요소를 가르킨다.
사실 코트린에서는 기본 타입의 요소를 저장하는 배열을 별도의 클래스로 갖고 있다.
ByteArray, ShortArray, IntArray, LongArray, FloatArray, DoubleArray, CharArray, BooleanArray 이다.
이 배열 클래스들은 코틀린 컴파일러가 JVM의 기본 타입 배열로 변환해준다. (CharArray는 Char[]로 변환)
하지만 다차원 배열에는 사용할 수 없음에 주의하자.
참고로
코틀린에서 Array<>() 을 사용하여 배열을 만들면 컴파일러는 제네릭 타입을 기준으로 컴파일하기 때문에 불필요하게 객체를 생성하게 되어 메모리 낭비와 성능 저하가 발생할 수 있다.
'프로그래밍 (Programming) > 코틀린 (Kotlin)' 카테고리의 다른 글
코틀린(Kotlin) 7. 추론 (0) | 2019.01.24 |
---|---|
Kotlin(코틀린) 6. 다차원 배열 (1) | 2019.01.24 |
Kotlin(코틀린) 4. 변수와 타입 (0) | 2019.01.24 |
Kotlin(코틀린) 3. 기본 구성 요소와 문법 (0) | 2019.01.24 |
Kotlin(코틀린) 2. IntelliJ IDEA 애플리케이션 작성과 실행하기 (0) | 2019.01.24 |