본문 바로가기

kotlin(android)

(kotlin) 배열, 컬렉션

728x90

배열

배열 : 공간 크기를 할당하거나 초기화를 하면 데이터의 개수만큼 크기가 결정된다. 초기화 이후 값의 변경을 제외한 값을 추가하거나 삭제할 수 없다.

// var 변수이름 = Array(크기)
var days = IntArray(7)
var charArray = CharArray(10)
var longArray = LongArray(10)
var floatArray = FloatArray(10)
var doubleArray = DoubleArray(10)

 

배열 days , 인덱스는 0부터 시작한다

String은 int, long과 같이 기본 타입이 아니기때문에 다르게 사용한다.

val str = Array(10, {item->""}) //빈 문자열로 된 배열 공간 할당
var daysArray = arrayOf("Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun")

배열에 값 입력

days[0] = 1 //인덱스 0, 값
days.set(0,1)//set(인덱스, 값)

인덱스를 이용해 배열 값 가져오기

var day = days[0]//인덱스 0
var day = days.get(0)//인덱스 0

컬렉션

배열과 다르게 자료형앞에 Mutable를 붙여 동적으로 사용한다.

종류로는 Set, List, Map이 있다.

 

리스트(list)

var list = mutableListOf("Mon", "Tue", "Wed") //초기화

값 추가

mutableList.add("Thr") //인덱스를 따로 지정해주지 않아도 순서대로 지정된다

값 얻기

var ch1 = mutableList.get(1) // "Tue"를 얻음

값의 수정, 제거

mutableList.set(1, "Fri")//set(인덱스, "수정값")
mutableList.removeAt(2)

중간에 있는 값을 삭제하면 지워진 이후 인덱스부터 하나씩 감소한다. 따라서 반복문 등을 이용해 연속으로 값을 삭제할 때 index로 인해 에러가 날 수 있다.

 

컬렉션의 개수

mutableList.size //set, map도 가능하다

셋(set)

셋(set)은 중복된 값을 허용하지 않는 자료형이다. 구조는 리스트와 유사하지만 인덱스 조회와 get을 사용할 수 없다.

 

set의 초기화 및 값 추가

 

var set1 = mutableSetOf<String>()//초기값이 없는 경우 <>(제네릭)을 사용하여 타입지정

초기값이 없는 경우 <>제네릭을 사용하여 타입을 지정해주어야한다.

set.add("Mon")
set.add("Tue")
set.add("Wed")
set.add("Mon") //불가능

set의 값 얻기

print("${set}") //전체 출력    [Mon, Tue, Wed]

인덱스로 조회하지 못하기 때문에 전체를 확인한다.

 

set의 값 삭제 : 중복을 허용하지 않기 때문에 값으로 삭제한다

set.remove("Tue")

 


맵(Map)

맵(Map)은 키(key)와 값(value)의 쌍으로 다뤄지는 자료형이다.

var map = mutableMapOf<Int, String>() // (키, 값)
map.put(1, "Mon")
map.put(2, "Tue")
map.put(3, "Wed")

맵의 값 얻기

 

print("${map.get(1)}") //key를 이용해 꺼낸다

값 추가, 수정 및 삭제 : 삭제 시 키 값은 유지된다.

map.put(3,"Fri") //동일 키 값이 없는 경우 추가된다
map.remove(2)


이뮤터블 컬렉션

 

Mutable 없이 list, set, map을 사용할 수도 있다. 요일과 같이 변하지 않는 값에 대해 사용한다.

val Days = listOf("월", "화", "수", "목", "금", "토", "일")

 

728x90

'kotlin(android)' 카테고리의 다른 글

drawableLeft, drawableStart  (0) 2023.08.20
(kotlin) 조건문 when  (0) 2023.01.24
(kotlin) 기본 문법 - 변수  (0) 2023.01.24