Hello, Android!

배열 arrayof, Array() 본문

Kotlin

배열 arrayof, Array()

lwndnjs93 2020. 6. 21. 20:09

일반적으로 배열은, 동일한 타입의 데이터가 연속적으로 나열된 형태를 말한다

기본적으로 배열은 1차원 즉 한 줄로 나열된 모습을 하고 있으며, 각각의 데이터에 인덱스 번호가 할당되며

특별한 언급이 없을 경우 배열의 시작이 되는 인덱스는 0 이며, 코틀린에서의 배열 또한 0부터 시작이다

(lua의 경우 1부터 시작)

 

 

코틀린에서의 배열은 arrayOf()와 Array()를 사용하여 활용이 가능하다

 

- arrayOf 를 활용한 방법

arrayOf()의 경우 함수의 매개변수에 배열에 저장하고자 하는 값을 넣어준다

만약 다차원 배열을 만드는 경우는 1차원 배열들을 arrayOf()의 매개변수로 넣어주면 된다

앞서 배열은 동일한 데이터 타입의 연속적인 나열 이라고 설명하였지만

코틀린의 배열에서는 array5 처럼 서로 다른 타입의 데이터를 같은 배열에 할당하는것이 가능하다

 

만약 특정한 타입의 데이터만 배열에 할당하고싶은 경우 크게 두가지 방법이 있다

첫번째로는 array6에서 처럼 제네릭을 활용하여 데이터 타입을 고정하는 것이다

두번째로는 코틀린에서 제공하는 함수를 사용하는것인데, 주로 타입명+ArrayOf() 의 모습을 한 함수이다

charArrayOf() booleanArrayOf() longArrayOf() shortArrayOf() bytrArrayOf() intArrayOf() 등이 있다

 

배열을 우선 만든 뒤 데이터를 할당하고자 하는 경우에는 arrayOfNulls<타입>(사이즈) 함수를 사용하게 된다

이는 함수 호출시 타입과 배열의 크기를 무조건 지정하여야 한다

배열에 데이터를 할당하는 함수로는 set(인덱스, 데이터) 함수가 있는데

첫번째 인자로는 해당 배열의 인덱스 번호, 두번째 인자로는 할당하고자 하는 데이터를 넣어준다

배열의 인덱스 번호는 0부터 시작하기 때문에 array8에는 0번 인덱스부터 4번 인덱스까지 데이터 할당이 가능하다

 

- Array()를 활용한 방법

arrayOf()함수를 활용하는 방법 이외에도 Array() 즉 Array클래스의 생성자를 이용하는 방법이 있다

코틀린의 Array클래스의 생성자는 <init>(size: Int, init: (Int) -> T) 의 모습을 하고 있다

즉 첫번째 매개변수에 배열의 크기가 들어가며, 두번째에는 람다식을 이용하여 배열의 값을 초기화 한다

https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-array/-init-.html

 

- Kotlin Programming Language

 

kotlinlang.org

생성자를 활용하여 배열을 만들때, array1 처럼 사용하는 경우 

두번째 매개변수에 들어간 값인 0 으로 배열의 값을 전부 초기화 하게되며

array2 처럼 사용하는 경우는 0부터 1씩 커지는 값으로 배열을 초기화 하게된다

 

- 배열의 접근

코틀린의 Array 클래스 에서는 배열의 요소에 접근하기 위한 get, set메소드가 있다

get()메소드는 해당 배열에서 원하는 요소의 인덱스 번호를 매개변수로 넘겨준다

set()메소드는 두개의 매개변수를 받는데, 첫번째는 데이터가 들어갈 인덱스 번호 

두번째는 배열에 저장할 데이터를 넣어준다

이 두 메소드는 연산자 오버로딩으로 정의되어있기때문에, []를 사용하여 접근하는것또한 가능하다

'Kotlin' 카테고리의 다른 글

배열의 정렬과 필터링  (0) 2020.06.28
배열의 추가 잘라내기  (0) 2020.06.27
reified타입  (0) 2020.06.14
자료형 프로젝션  (0) 2020.04.19
상위 하위 형식의 가변성  (0) 2020.04.18