여러 데이터를 대입하기 위한 방법은 배열 이외에 List, Set, Map등이있다. List, Set, Map모두 Collrection이라는 인터페이스 타입으로 표현되는 컬렉션 클래스이다. 컬렉션 타입별 불변(immutable)/가변(mutable) 메서드
분류
|
타입
|
메서드
|
특징
|
List
|
List
|
listOf()
|
불변
|
MutableList
|
mutableListOf()
|
가변
|
Map
|
Map
|
mapOf()
|
불변
|
MutableMap
|
mutableMapOf()
|
가변
|
Set
|
Set
|
setoff()
|
불변
|
MutableSet
|
mutableSetOf()
|
가변
|
불변 타입은 get()메서드로 데이터를 접근할 수 있지만 set(), add()메서드 자체를 제공하지 않는다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | // 불변 var immutableList: List<String> = listOf(“hello”, “world”); println("${ immutableList.get(0)} / ${ immutableList.get(1)}"); 결과 : hello / world // 가변 val mutableList: MutableList<String> = mutableListOf(“hello”, “world”); mutableList.add(“test”); mutableList.add(1, “korea”); println("${ mutableList.get(0)} / ${ mutableList.get(1)} / ${ mutableList.get(2)}"); 결과 : hello / korea / test | cs |
|
Map, Set도 같은 형태이다. 이터레이터(Iterator)는 컬렉션 타입의 데이터를 hasNext()와 next()메서드를 이용해 차례로 얻어서 사용하기 위한 인터페이스이다. List, Map, Set, Array타입의 데이터 모두 이터레이터 타입의 객체로 변경하여 사용할 수 있다. | val list1 = listOf<String>("hello", "list"); val iterator1 = list1.iterator();; while(iterator1.hasNext()) { println(iterator1.next()); } | cs
|
|
|