배열
배열 선언
arrayOf(): 배열의 초기값을 설정.
Array<T>(Int size) {초기값}: 초기값으로 초기화된 size만큼의 크기를 가진 배열을 선언.
List, Set, Map 공통
선언 및 초기화 시 타입이 명시되어 있거나 추론할 수 있어야 한다.
ex) val ls1 = mutableListOf()는 list가 어떤 타입인지 알 수 없기 때문에 오류.
val ls2: List<Int> = mutableListOf()는 Int타입임을 명시했기 때문에 오류 x.
val ls3 = mutableListOf(1, 2, 3)은 리스트 안에 있는 원소들이 어떤 타입인지 추론 가능하기 때문에 오류 x.
List
- 수정 불가능한 List와 수정 가능한 MutableList가 있다.
-선언 및 초기화
- List: ListOf()
- MutableList: mutableListOf()
타입을 명시하고 싶다면 선언시 List나 MutableList뒤에 <T>를 붙인다.
fun main() {
val list1 = listOf("apple", "banana", "grape") //읽기만 가능한 리스트
val list2 = mutableListOf(1.0, 2.0, 3.2) // 수정 가능한 리스트.
val list: List<Int> = listOf(1, 2, 3)
}
-원소 접근
- list[int index]
fun main() {
val list1 = listOf("apple", "banana", "grape")
System.out.println(list1[0]) //apple 출력
}
-멤버 함수(List, MutableList 공통)
- T first(): 리스트의 맨 첫번째 원소를 반환한다. 리스트가 비어있다면 NoSuchElementException 에러가 발생한다.
- T last(): 리스트의 맨 마지막 원소를 반환한다. 리스트가 비어있다면 NoSuchElementException 에러가 발생한다.
- Int count(): 리스트에 있는 원소의 개수를 반환한다.
- Int indexOf(E element): element의 인덱스를 반환한다. 리스트에 element가 없다면 -1을 반환한다
- T? find(Predicate p): 조건 p에 맞는 첫번째 원소를 반환한다. 조건에 맞는 원소가 없다면 null을 반환한다.
-멤버 함수(MutableList)
- Boolean add(E element): 리스트에 element를 추가한다. 리스트가 항상 연산대로 수정되기 때문에 true를 반환한다.
- Boolean remove(E element): 리스트에 있는 element를 삭제한다. 삭제되었다면 true를 반환, element가 리스트에 없다면 false를 반환한다.
- E removeAt(Int index): index에 위치한 원소를 지운 후 해당 원소를 반환한다.
Set
- 순서가 없고 중복을 허용하지 않는 컬렉션이다.
- 수정 불가능한 Set과 수정 가능한 MutableSet이 있다.
-선언 및 초기화
- Set: SetOf()
- MutableSet: mutableSetOf()
fun main() {
val fruits = setOf("apple", "banana", "grape") //읽기만 가능한 set.
val primes: Set<Int> = mutableSetOf(2, 3, 5) //수정이 가능한 set.
}
- 원소 접근
- 특정한 순서가 없기 때문에 특정 인덱스로 접근할 수 없다.
- for문, foreach문, iterator를 이용하여 전체를 순회하며 접근하도록 한다.
- 멤버 함수(Set, MutableSet 공통)
- Int count(): 리스트에 있는 원소의 개수를 반환한다.
- T? find(Predicate p): 조건 p에 맞는 첫번째 원소를 반환한다. 조건에 맞는 원소가 없다면 null을 반환한다.
- 멤버 함수(MutableSet)
- Boolean add(E element): 셋에 element를 추가한다. 셋에 element가 추가되었다면 true를 반환하고, 이미 있다면 false를 반환한다.
- Boolean remove(E element): 셋에 있는 element를 삭제한다. 삭제되었다면 true를 반환, element가 셋에 없다면 false를 반환한다.
Map
- <Key, Value>의 쌍으로 데이터를 저장하는 컬렉션.
- 키의 중복은 가능하지만 값의 중복은 불가능하다.
- 수정 불가능한 Map과 수정 가능한 MutableMap이 있다.
-선언 및 초기화
- Map: mapOf()
- MutableMap: mutableMapOf()
생성과 동시에 map에 원소를 넣고 싶다면 Key to Value를 사용한다.
fun main() {
val map1 = mapOf("사과" to "apple", "바나나" to "banana", "포도" to "grape") //읽기만 가능한 map
val map2: Map<String, Int> = mutableMapOf() //수정이 가능한 map.
}
- 원소 접근
- map[Key]로 Value에 접근 가능하다.
- 멤버 함수 (Map, MutableMap 공통)
- Int count(): 맵에 있는 원소의 개수를 반환한다.
- Map<Key, Value> filter(Predicate p): 조건 p에 맞는 모든 원소들을 담은 Map을 반환한다. 조건에 맞는 원소가 없다면 빈 map을 반환한다
- Boolean contains(Key k): 맵에 k에 해당하는 원소가 있는지 확인한다. k가 있다면 true, 없다면 false를 반환한다.
- Boolean containsKey(Key k): 맵의 키에 k가 있는지 확인한다. k가 있다면 true, 없다면 false를 반환한다.
- Boolean containsValue(Value v): 맵의 값에 v가 있는지 확인한다. v가 있다면 true, 없다면 false를 반환한다.
- 멤버 함수(MutableMap)
- V? put(Key k, Value v): 맵에 <k, v>로 이루어진 데이터를 추가(수정)한다. 이전에 맵에 키가 k인 데이터가 없다면 null을 반환하고, 키가 k인 데이터가 있다면 이전 Value를 반환한다.
- V? remove(Key k): 키 k를 가진 데이터를 삭제한다.
'프로그래밍 언어 > Kotlin' 카테고리의 다른 글
코테용 코틀린 정리 (4) - 스택(stack), 큐(queue), 덱(deque) (0) | 2024.07.03 |
---|---|
코테용 코틀린 정리(2) - 자료형 변환, 수학(max, min, sqrt, pow) (0) | 2024.06.22 |
코테용 코틀린 정리 (1) - 문자열(String) (0) | 2024.06.21 |