본문 바로가기
Kotlin

Kotlin - 컬렉션(리스트,맵,집합)

by 봄석 2019. 1. 3.

Kotlin - 컬렉션(리스트, 맵, 집합)

컬렉션은 개발에 유용한 자료구조를 말합니다. 안드로이드 개발에서도 리스트나 맵은 자주 사용되는 구조입니다.


리스트

리스트는 배열처럼 같은 자료형의 데이터들을 순서대로 가지고 있는 자료구조입니다. 중복된 아이템을 가질 수 있고 추가, 삭제, 교체 등이 쉽습니다.


요소를 변경할 수 없는 읽기 전용 리스트는 listOf() 메소드로 작성할 수 있습니다.

val foods:List<String> = listOf("라면","갈비","밥")



형 추론으로 자료형을 생략할 수 있습니다.

val foods=listOf("라면","갈비","밥")



요소를 변경하는 리스트를 작성할 때는 mutableListOf() 메소드를 사용하여 작성합니다. 

자바와 다른 점은 특정 요소에 접근할 때 대괄호 안에 요소번호로 접근할 수 있다는 겁니다.

val foods=mutableListOf("라면","갈비","밥")
 
foods.add("초밥")        // 초밥을 맨뒤에 추가
foods.removeAt(0)         //맨앞의 아이템 삭제
foods[1="부대찌게"    //foods.set(1,"부대찌개") (번째 아이템을 부대찌개로 변경)
 
println(foods)            //[갈비,부대찌개,초밥]
println(foods[0])        //갈비
println(foods[1])        //부대찌개
println(foods[2])        //초밥





맵은 키(key)와 값(value)의 쌍으로 이루어진 키가 중복될 수 없는 자료구조 입니다.

리스트와 마찬가지로 mapOf() 메소드로 읽기 전용 맵을 만들 수 있고, mutableMapOf() 메소드로 수정이 가능한 맵을 만들 수 있습니다. 맵의 요소에 접근할 때는 대괄호 안에 키(key)를 요소명으로 작성하여 접근합니다.

//읽기 전용 맵
val map=mapOf("a" to 1,"b" to 2,"c" to 3)
 
//변경 가능한 맵
val citiesMap=mutableMapOf("한국" to "서울",
        "일본" to "동경",
        "중국" to "북경")
 
//요소에 덮어쓰기
citiesMap["한국"]="서울특별시"
//추가

citiesMap["미국"]="워싱턴"


맵 전체의 키와 값을 탐색할 때는 다음과 같이 간단히 탐색할 수 있습니다.

//맵의 키와 값을 탐색
for((k,v) in map){
    println("$k -> $v")
}

// a->1; b->2; c->3




집합

집합(set)은 중복되지 않는 요소들로 구성된 자료구조 입니다. setOf()메소드로 읽기 전용 집합을, mutableSetOf() 메소드로 수정가능한 집합을 생성합니다. 

//읽기 전용 집합
val citySet=setOf("서울","수원","부산")
 
//수정 가능한 집합
val citySet2=mutableSetOf("서울","수원","부산")
citySet2.add("안양"// [서울, 수원, 부산, 안양]
citySet2.remove("수원"// [서울,부산,안양]
 
//집합의 크기
println(citySet2.size)  //3
//'서울'이 집합에 포함되었는디

println(citySet2.contains("서울")) //true



댓글