배열과 컬렉션

고성욱·2023년 3월 20일
0

안드로이드

목록 보기
13/26

배열과 컬렉션이 나온이유

프로그래밍을 하다 보면 하나의 변수에 여러 개의 값을 저장해야 할 필요성이 생깁니다. 코틀린 뿐만아니라 대부분의 컴퓨터의 언어들은 이처럼 여러갣의 값을 하나의 변수에 저장 할 수 있도록 배열과 컬렉션이라는 데이터 타입을 제공합니다.

  • 배열
  • 컬렉션

배열

코틀린에서 배열은 동일한 데이터 타입의 고정된 크기의 요소로 이루어진 데이터 구조입니다. 배열은 다음과 같이 선언됩니다.

val arrayName: Array<Type> = arrayOf(value1, value2, value3, ...)

여기서 arrayName은 배열의 이름, Type은 배열 요소의 데이터 타입, value1, value2, value3 등은 배열의 요소입니다. 배열의 요소는 인덱스를 사용하여 접근할 수 있습니다. 첫번째 요소는 인덱스 0, 두번째 요소는 인덱스 1, 세번째 요소는 인덱스 2, ..., 마지막 요소는 인덱스 arrayName.size - 1입니다.

val arrayName = arrayOf("value1", "value2", "value3")
//인덱스 번호로 값에 접근하는 방법 
println(arrayName[0]) // "value1" 출력
println(arrayName[2]) // "value3" 출력
//get함수를 사용해서 값에 접근하는 방법 
println(arrayName.get(1)) // "value2" 출력

또한, 코틀린에서는 arrayOf 함수 뿐만 아니라 intArrayOf, floatArrayOf, charArrayOf 등의 함수를 사용하여 데이터 타입이 정해진 배열을 생성할 수 있습니다.

val intArray = intArrayOf(1, 2, 3, 4, 5)
val charArray = charArrayOf('a', 'b', 'c', 'd', 'e')

배열은 요소의 개수가 고정되어 있기 때문에 크기를 변경할 수 없습니다. 따라서 배열의 크기를 변경할 필요가 있는 경우에는 대신 컬렉션을 사용해야 합니다.

컬렉션

코틀린에서 컬렉션은 배열과 달리 크기가 가변적인 데이터 타입입니다. 컬렉션은 제네릭 클래스로 이루어져 있으며, 여러개의 데이터를 담을 수 있는 자료구조입니다.

코틀린에서 제공하는 컬렉션 클래스에는 List, Set, Map 등이 있습니다.

List

List 인터페이스는 순서가 있는 데이터 집합입니다. List는 다음과 같이 생성될 수 있습니다.

val list: List<String> = listOf("value1", "value2", "value3")

Set

Set 인터페이스는 중복을 허용하지 않는 순서 없는 데이터 집합입니다. Set은 다음과 같이 생성될 수 있습니다.

val set: Set<String> = setOf("value1", "value2", "value3")

Map

Map 인터페이스는 순서 없는 key-value 쌍의 데이터 집합입니다. Map은 다음과 같이 생성될 수 있습니다.

val map: Map<String, Int> = mapOf("key1" to 1, "key2" to 2, "key3" to 3)

컬렉션은 크기가 가변적이므로, 요소를 추가하거나 삭제할 수 있습니다. add, remove 등의 함수를 사용하여 요소를 추가하거나 삭제할 수 있습니다.

val list = mutableListOf("value1", "value2", "value3")
list.add("value4") // ["value1", "value2", "value3", "value4"]
list.remove("value2") // ["value1", "value3", "value4"]

컬렉션은 배열보다 다양한 기능을 제공합니다. 예를 들어, filter, map, reduce 등의 함수를 사용하여 요소를 검색하거나 변환하는 등의 작업을 할 수 있습니다.

Map 사용및 수정,삭제 방법

Map은 순서 없는 key-value 쌍의 데이터 집합입니다. Map은 다음과 같이 생성될 수 있습니다.

val map: Map<String, Int> = mapOf("key1" to 1, "key2" to 2, "key3" to 3)

Mapkeyvalue를 추가하는 방법은 다음과 같습니다.

val map = mutableMapOf<String, Int>()
map.put("key1", 1)
map.put("key2", 2)
map.put("key3", 3)

Map에서 특정 keyvalue를 가져오는 방법은 get 함수를 사용하거나 [] 연산자를 사용하면 됩니다.

val map = mapOf("key1" to 1, "key2" to 2, "key3" to 3)
val value1 = map.get("key1") // 1
val value2 = map["key2"] // 2

Map에서 특정 keyvalue를 수정하는 방법은 put 함수를 사용하거나 [] 연산자를 사용하면 됩니다.

val map = mutableMapOf("key1" to 1, "key2" to 2, "key3" to 3)
map.put("key1", 10)
map["key2"] = 20

Map에서 특정 keyvalue를 삭제하는 방법은 remove 함수를 사용하면 됩니다.

val map = mutableMapOf("key1" to 1, "key2" to 2, "key3" to 3)
map.remove("key1")
profile
안드로이드, 파이썬 개발자

0개의 댓글