스터디/Kotlin

[ 스터디 ] 코틀린 : 식과 연산자, 배열

공또뤼 2023. 5. 9. 21:25
반응형

1. 식 & 문

- 식 : 어떤 한가지 값으로 계산될 수 있는 프로그램 조각

- 문 : 값을 만들어 내지 않지만 프로그램의 흐름을 제어하는 역할

 

2. 배열 

- 문자열은 문자를 여럿 연속으로 이어붙인 데이터라고 할 수 있다.

 

> 컬렉션 collection : 여러 원소가 저장된 데이터 구조

컬렉션 중 배열은 가장 오래된 컬렉션
인덱스 index 값만으로 그 값의 위치를 알 수 있다는 장점이 존재 = 배열
( 프로그래밍에서 주소 등을 표현할 때는 보통 16 진수 사용)

> 시간 복잡도 time complexity : 연산을 수행하는데 얼마나 오랜 시간이 걸리는지

> 상수 시간 연산  constant time operation : 입력과 관계없이 항상 일정한 시간이 걸려 수행할 수 있는 계산

 

- 빠르게 데이터를 읽고 쓸수 있다는 장점

- 쉽게 크기를 늘릴 수 없고 중간에 데이터 삽입할 때 삽입될 위치부터 그 이후의 데이터를 하나씩 뒤로 옮겨야 하기 때문에 원소 삽입 시간이 상대적으로 느리다는 단점

 

2-1. 배열 선언하기

* 배열을 선언하려면 원소의 타입 & 원소의 개수를 알아야 한다.

* 이미 알고 있는 경우라면 arrayOf 함수를 사용하여 배열을 선언할 수 있다.

* arrayof()를 이용하면 전달된 원소들의 개수에 따라 정해진다.

val oneToTen = arrayOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

val oneToTen: Array<Int> = arrayOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

 

* 배열의 길이를 얻고싶으면 .size를 사용하고 원소를 얻고자 하면 [] 사이에 index 값을 넣어준다.

val c = oneToTen[0]
val s = oneToTen[oneToTen.size-1]

( 만약 배열 길이를 벗어난 인덱스 값을 넣게되면 ArrayIndexOutOfBoundsException 예외가 발생한다! )

 

 

2-2. 다른 방식으로 배열 생성하기

* 배열 크기는 알지만 원소값들을 알 수 없는 경우에는 arrayOfNulls를 사용하여 null로 배열을 채울 수 있다.

val array = arrayOfNulls<Int>(10)

 

* 배열 크기를 알고 각 위치에 어떤 값을 채워 넣을지 인덱스로부터 계산할 수 있는 경우에는 Array 함수를 이용한다.

val array = Array(10){it+1}

 

반응형