여러 기업들이 코틀린을 이용해 코딩테스트를 요구하는 경우가 많다.
따라서 코딩테스트를 공부하기 코틀린 문법을 정리를 천천히 해보려고 한다~!
코틀린의 Collection type
코틀린에서는 3 종류의 Collection type이 있다.
- List
- Set
- Map
List
인덱스로 접근 가능한 순서가 있는 collection이다.
요소들은 중복으로 들어갈 수 있다.
파이썬의 Tuple과 비슷하다. (뒤에 나오는 MutableList는 파이썬의 List와 비슷하다)
Set
유일한 elements의 collection이다.
즉, List처럼 요소가 반복적으로 등장할 수 없다. (요소 중복 불가)
일반적으로, Set의 요소들의 순서가 중요하지 않다.
파이썬의 Set과 비슷하다.
Map(or dictionary)
key-value(키-값) 쌍이다.
키는 유일하며 각 키들이 정확히 하나의 값과 매핑된다.
키는 유일하지만 값들은 중복이 될 수 있다.
파이썬의 Dict와 비슷하다.
예를 들어 키가 "one" 일 때 값이 "1", 키가 "하나" 일 때도 값이 "1"이 될 수 있지만
키가 "2"일 때 값이 "two", 키가 "2"일 때 값이 "둘" 이면 키가 중복이기 때문에 불가능하다.
코틀린 Collection interfaces의 2가지 종류
코틀린의 Collections는 Mutable 타입과, Immutable 타입 중 하나이다.
(코틀린 공식 Doc에서는 Immutable 타입을 read-only 라고 표현하는 듯 하다)

코틀린 collections의 인터페이스 관계도
사용 방법
mutableList
코틀린
val testList = mutableListOf("a","b","c")
println(testList) // [a, b, c]
testList.add("d")
println(testList) // [a, b, c, d]
testList.remove("a")
println(testList) // [b, c, d]
val findindex = testList.indexOf("c")
println(findindex) // 1 C 의 index 위치를 찾음
val testIterator = testList.listIterator()
println(testList) // [b, c, d] 현재 배열 상태
println(testIterator.next()) // b
println(testIterator.next()) // c
println(testIterator.hasNext()) // true
println(testIterator.next()) // d
println(testIterator.hasNext()) // false
println(testIterator.previous()) // d
println(testIterator.previous()) // c
println(testIterator.previous()) // b
// 활용하기
println("HasNext 실습")
while (testIterator.hasNext()){
println(testIterator.next()) // b c d
}
Set
코틀린
val numbers = mutableSetOf(1, 2, 3, 4)
println("Number of elements: ${numbers.size}")
// Number of elements: 4
if (numbers.contains(1)) println("1 is in the set")
// 1 is in the set
val numbersBackwards = setOf(4, 3, 2, 1)
println("The sets are equal: ${numbers == numbersBackwards}")
// The sets are equal: true
Map
코틀린
val testMap = mutableMapOf<Int, String>()
testMap.put(1, "짱구")
testMap.put(2, "철수")
testMap.put(3, "맹구")
println(testMap) // {1=짱구, 2=철수, 3=맹구}
println(testMap.get(1)) // 짱구
// 실습하기
val mutableListtest = mutableListOf<String>("sunglass", "hat", "shoes", "clothes", "sunglass" , "hat")
val testMap2 = mutableMapOf<String, MutableList<String>>()
for(i in mutableListtest){
if(i in testMap2){
testMap2[i]!!.add("hi")
}
else{
testMap2[i] = mutableListOf<String>("hello")
}
}
println(testMap2) // {sunglass=[hello, hi], hat=[hello, hi], shoes=[hello], clothes=[hello]}'안드로이드 > 정리(Android)' 카테고리의 다른 글
| Android - MVVM + ROOM + RETROFIT 활용 앱 (0) | 2022.04.26 |
|---|---|
| Android - MVVM 패턴 적용해보기 With Room (0) | 2022.04.06 |
| Android - MotionLayout splash 앱 만들어보기 (0) | 2022.03.11 |
| kotlin - retrofit을 이용한 레시피 검색 앱 만들기 (0) | 2022.03.06 |
| Android - RecyclerView와 Retrofit을 사용한 Api 불러오기 (0) | 2022.03.04 |