Immutable Collections : 값을 추가, 삭제, 변경이 불가능 한 콜렉션 
listOf<T>, setOf<T>, mapOf<TKey, TValue> 

// 1. List -> 중복 허용 
val numberList = listOf<Int>(1, 2, 3, 3, 3) 
// 출력 값: [1, 2, 3] 

// 1-1. 원소단위로 출력 
println(numberList[0]) 
println(numberList[1]) 

// 2. Set (집합) 
// 집합의 특징: 중복을 허용하지 않는다, 순서가 없다 
val numberSet = setOf<Int>(4, 5, 6, 6, 6) 
// 출력 값: [4, 5, 6] 

// 2-1. 출력 
// 순서가 없기 때문에 Index가 없다. 
numberSet.forEach { println(it) } 
// 출력 값: 4 5 6 

// 3. Map -> 원소가 쌍을 이루는 Key와 value를 가진다 
// mapOf<Key, Value> 
val numberMap = mapOf<String, Int>("A" to 11, "B" to 22, "C" to 33) 
// 출력 값: {1=A, 2=b, 3=C} 

// 3-1. 출력: Key값을 인덱스로 사용한다. 
println(numberMap["A"]) 
println(numberMap["B"]) 
println(numberMap["C"]) 

 


Mutable Collection : 추가, 삭제, 변경이 가능한 콜렉션

mutableListOf<T>, mutableSetOf<T>, mutableMapOf<TKey, TValue>

// 1. List
val mNumberList = mutableListOf<Int>(0, 1)

// 1-1. 마지막 Index 뒤에 순서대로 원소를 수가
mNumberList.add(3)
mNumberList.add(4)
println(mNumberList)
// 출력 값: [0, 1, 3, 4]

// 1-2. 위치를 지정하여 원소소를 추가
mNumberList.add(0, 10)
println(mNumberList)
// 출력 값: [10, 0, 1, 3, 4]

// 1-3. 지정한 index에 원소 추가
mNumberList.set(0, 100)
// 출력 값: [100, 0, 1, 3, 4] 해당 위치에 값이 들어가고 기존값 부터 우측 index로 이동된다.

// 1-4. 지정한 index의 원소 제거
mNumberList.removeAt(0)
// 출력 값: [0, 1, 3, 4]

// 2. Set
val mNumberSet = mutableSetOf<Int>(1, 2, 3, 3, 3)

// 2-1. 원소 추가
mNumberSet.add(10)
println(mNumberSet)
// 출력 값: [1, 2, 3, 10]

// 2-2. 원소제거: 제거할 원소의 "값"을 입력한다
mNumberSet.remove(2)
// 출력 값: [1, 3, 10]

// 3. Map
val mNumberMap = mutableMapOf<String, Int>("one" to 1, "two" to 2)

// 3-1. 원소 추가
mNumberMap["three"] = 3
mNumberMap["a"] = 10
mNumberMap.put("kkk", 999)
println(mNumberMap)
// 출력 값: {one=1, two=2, three=3, a=10, kkk=999}

// 3-2. 값 변경
mNumberMap.replace("two", 222)
// 출력 값: {one=1, two=222, three=3, a=10, kkk=999}

// 3-3. key, value의 목록출력
println(mNumberMap.keys)
// 출력 값: [one, two, three, a, kkk]

println(mNumberMap.values)
// 출력 값: [1, 222, 3, 10, 999]

// 3-4. Map의 전체 내용지우기
mNumberMap.clear()

 

 

+ Recent posts