본문 바로가기
대학/안드로이드(코틀린) 정리

안드로이드 컬렉션 타입 / List, Set, Map ( 코틀린 )

by JJO.A 2022. 10. 23.

List, Set, Map : 컬렉션 타입 클래스, Collection 인터페이스를 타입으로 표현한 클래스.

 

  • List : 순서가 있는 데이터 집합, 데이터의 중복 허용 함.
  • Set : 순서가 없는 데이터 집합, 데이터의 중복 허용하지 않음.
  • Map : 키와 값으로 이루어진 데이터 집합, 순서가 없음, 키의 중복을 허용하지 않음.

 

컬렉션 타입의 분류
  • 가변(mutable) 클래스 : 초깃값을 대입한 이후에도 데이터를 추가, 변경 가능한 것.
  • 불변(immutable) 클래스 : 초깃값을 대입한 후에 추가, 변경이 불가능한 것.
구분 타입 함수 특징
List List listOf() 불변
MutableList mutableListOf() 가변
Set Set setOf() 불변
MutableSet mutableSetOf() 가변
Map Map mapOf() 불변
mutableMap mutableMapOf() 가변

 

 

불변 타입( (list/set/map)Of( ) )의 제공 함수 : size(), get()

가변 타입( mutable(List/Set/Map)Of( ) )의 제공 함수 : size(), get(), 리스트 : add(), 맵 : put( ), set()

 

리스트 : List

 

1. 리스트 선언 : listOf()

var 변수명 = listOf<타입>(값)

예시

fun main(){
	var list = listOf<Int>(10,20)
    println("list size : ${list.size}\nlist data : ${list[0]}, ${list.get(1)}")
}

실행화면

→List 객체의 데이터에 접근하는 방법 : 배열과 마찬가지로 대괄호( [ ] )를 이용하거나, get( )함수를 이용한다.

 

2. 리스트 선언 : mutableListOf()

var 변수명 = mutableListOf<타입>(값)

예시

fun main(){
	var mutableList = mutableListOf<String>("리스트","선언!")
    println("list size : ${mutableList.size}\nlist data : ${mutableList[0]}, ${mutableList.get(1)}")
    
    mutableList.add(2,"추가")
    println("list size : ${mutableList.size}\nlist data : ${mutableList[0]}, ${mutableList.get(1)}, ${mutableList.get(2)}")
    
    mutableList.set(1,"변경")
    println("list size : ${mutableList.size}\nlist data : ${mutableList[0]}, ${mutableList.get(1)}, ${mutableList.get(2)}")

}

실행화면

→ 리스트에 값을 추가하는 방법 : list.add(순서, 값) 

→ 리스트에 있는 값을 변경하는 방법 : list.set(순서, 값) 

 

 

맵 : Map

Map 객체 : 키와 값으로 이루어진 데이터의 집합

 

하나의 map에서 모든 key는 같은 타입이어야 한며 모든 value는 같은 타입이어야 한다. key와 value는 같은 타입이어야 할 필요는 없다.

 

map 선언

1. pair객체 이용

var 변수명 = mapOf<키 타입, 값 타입>(Pair("키 값" , "값의 값"))

2. '키 to 값' 형태

var 변수명 = mapOf<키 타입, 값 타입>("키 값" to "값의 값")

 

예시

fun main(){
	var map = mutableMapOf<String, String>(Pair("키","값"), "key" to "value")		//수정가능한 Map
    println("map size : ${map.size}\nmap data : ${map["키"]}, ${map.get("key")}")
   
   	map.set("키","값 수정됨")	//map 수정
   	println("map size : ${map.size}\nmap data : ${map["키"]}, ${map.get("key")}")
    
   	map.put("3","삼")	//map에 값 추가
   	println("map size : ${map.size}\nmap data : ${map["키"]}, ${map.get("key")}, ${map.get("3")}")
}

 실행화면

 

→Map 객체의 데이터에 접근하는 방법 : 리스트와 마찬가지로 대괄호( [ ] )를 이용하거나, get( )함수를 이용한다. 다만 괄호와 함수안에 key를 넣는다.

→ 맵에 값을 추가하는 방법 : map.add("키", "값")

→ 맵에 있는 값을 변경하는 방법 : map.set("키", "값") 

→ 맵에 있는 값을 삭제하는 방법 : map.remove("키")