본문 바로가기
언어 공부하기/코들린 개념

[망댕이의 Kotlin] 코틀린 List, Set, Map 3가지에 대해 빠르게 알아보기 (코틀린 list, set, map)

by 망댕이 2024. 9. 2.
반응형

코틀린에 list, set, map이라는 개념이 존재한다.

이것들은 인터페이스를 타입으로 표현한 클래스이며 통틀어 컬렉션 타입 클래스라고 한다.

(코틀린에서 컬렉션은 데이터를 저장하고 조작할 때 사용되는 기본적인 구조이다.)

▷ List, Set, Map

List : 순서가 있는 데이터 집합으로 데이터의 중복을 허용한다.

Set : 순서가 ㅏ없으며 데이터의 중복을 허용하지 않는다.

Map : 키와 값으로 이루어진 데이터 집합으로 순서가 없으며 키의 중복은 허용하지 않는다.

 

이 3가지는 모두 불변 클래스와 가변 클래스를 가지고 있다.

아래 표를 보면서 이해해 보자.

 

  type function feature
List List listOf() 불변
MutableList mutableListOf() 가변
Set Set setOf() 불변
MutableSet mutableSetOf() 가변
Map Map mapOf() 불변
MutableMap mutableMapOf() 가변

 

 

불변 클래스는 초기에 데이터를 대입하면 더 이상 변경할 수 없는 타입을 의미한다.

가변 클래스는 초깃값을 대입한 후에도 데이터를 추가하거나 변경이 가능한 것을 의미한다.

 

아래 예제를 살펴보자.

fun main(){
	var list = listOf<Int> (10, 20, 30) // 불변
    println("list size : ${list.size}")
    println("list[0] data : ${list.get(0)}")
    
    var mutablelist = mutableListOf<Int> (10, 20, 30) // 가변
    mutablelist.add(3, 40) // 인덱스 3에 40을 추가
    mutablelist.set(0, 50) // 인덱스 0의 값을 50으로 변경
    println("mutablelist size : ${mutablelist.size}")
    println("mutablelist[0] data : ${mutablelist.get(0)}")
    
    var map = mapOf<String, String> (Pair("one", "hello"), "two" to "world")
    println("map size : ${map.size}")
    println("map data : ${map.get("one")}, ${map.get("two")}")
}

 

출력 결과

list size : 3
list[0] data : 10
mutablelist size : 4
mutablelist[0] data : 50
map size : 2
map data : hello, world

 

불변 리스트 (listOf):

  • list는 listOf를 사용해 생성된 불변 리스트입니다. 불변 리스트는 생성 후 수정할 수 없습니다.
  • list.size는 리스트의 크기(요소의 개수)를 반환합니다.
  • list.get(0)은 리스트의 첫 번째 요소를 가져옵니다.

가변 리스트 (mutableListOf):

  • mutablelist는 mutableListOf를 사용해 생성된 가변 리스트입니다. 가변 리스트는 생성 후 요소를 추가하거나 수정할 수 있습니다.
  • mutablelist.add(3, 40)은 리스트의 네 번째 위치(인덱스 3)에 40을 추가합니다.
  • mutablelist.set(0, 50)은 리스트의 첫 번째 요소를 50으로 변경합니다.

맵 (mapOf):

  • map은 mapOf를 사용해 생성된 불변 맵입니다. 이 맵은 키-값 쌍으로 이루어져 있으며, "one" 키에는 "hello"가, "two" 키에는 "world"가 대응됩니다.
  • Pair("one", "hello")처럼 키 값을 Pair 객체로 표현해 Map에 대입해도 된다.
  • map.size는 맵의 크기(키-값 쌍의 개수)를 반환합니다.
  • map.get("one")과 map.get("two")는 각각 "one"과 "two" 키에 대응하는 값을 반환합니다.

 

 

코틀린에서 제공하는 List, Set, Map은 각각의 특징과 용도가 다르다.

List는 순서가 있는 데이터를 관리할 때, Set은 고유한 데이터를 관리할 때, Map은 키-값 쌍의 데이터를 관리할 때 유용하게 사용할 수 있습니다.

각 컬렉션은 불변형과 가변형이 있으며, 상황에 맞게 적절한 타입을 선택하여 사용하면 코틀린의 강력한 컬렉션 기능을 최대한 활용할 수 있습니다.

 

위 글 개념 오류 혹은 코드 오류가 있다면 댓글로 알려주시면 감사합니다!

반응형