Kotlin에서는 다양한 자료구조를 사용할 수 있으며, Java의 표준 라이브러리를 사용하여 구현할 수 있습니다. Kotlin 자체에는 기본적인 자료구조가 포함되어 있지만, 더 복잡한 자료구조는 Java의 클래스를 활용해야 합니다. 아래에 Kotlin에서 사용할 수 있는 주요 자료구조를 정리했습니다.
1. List (리스트)
- List (읽기 전용 리스트)
- MutableList (변경 가능한 리스트)
kotlin코드 복사
val list = listOf(1, 2, 3) // 읽기 전용 리스트
val mutableList = mutableListOf(1, 2, 3) // 변경 가능한 리스트
2. Set (집합)
- Set (읽기 전용 집합)
- MutableSet (변경 가능한 집합)
kotlin코드 복사
val set = setOf(1, 2, 3) // 읽기 전용 집합
val mutableSet = mutableSetOf(1, 2, 3) // 변경 가능한 집합
3. Map (맵)
- Map (읽기 전용 맵)
- MutableMap (변경 가능한 맵)
kotlin코드 복사
val map = mapOf(1 to "a", 2 to "b") // 읽기 전용 맵
val mutableMap = mutableMapOf(1 to "a", 2 to "b") // 변경 가능한 맵
4. Queue (큐)
- Queue 인터페이스는 Java의 java.util.Queue를 사용하여 구현합니다.
kotlin코드 복사
import java.util.LinkedList
import java.util.Queue
val queue: Queue<Int> = LinkedList()
queue.add(1)
queue.add(2)
queue.add(3)
println(queue.poll()) // 1
5. Deque (덱)
- Deque 인터페이스는 Java의 java.util.Deque를 사용하여 구현합니다.
kotlin코드 복사
import java.util.ArrayDeque
import java.util.Deque
val deque: Deque<Int> = ArrayDeque()
deque.addFirst(1)
deque.addLast(2)
deque.addLast(3)
println(deque.removeFirst()) // 1
6. Stack (스택)
- Stack 클래스는 Java의 java.util.Stack을 사용하여 구현합니다. 그러나 Kotlin에서는 ArrayDeque를 스택으로 사용하는 것이 더 권장됩니다.
kotlin코드 복사
import java.util.Stack
val stack = Stack<Int>()
stack.push(1)
stack.push(2)
stack.push(3)
println(stack.pop()) // 3
// 또는 ArrayDeque를 스택으로 사용
val stackDeque = ArrayDeque<Int>()
stackDeque.push(1)
stackDeque.push(2)
stackDeque.push(3)
println(stackDeque.pop()) // 3
7. PriorityQueue (우선순위 큐, 힙)
- PriorityQueue 클래스는 Java의 java.util.PriorityQueue를 사용하여 구현합니다.
kotlin코드 복사
import java.util.PriorityQueue
val priorityQueue = PriorityQueue<Int>()
priorityQueue.add(3)
priorityQueue.add(1)
priorityQueue.add(2)
println(priorityQueue.poll()) // 1
8. Linked List (연결 리스트)
- LinkedList 클래스는 Java의 java.util.LinkedList를 사용하여 구현합니다.
kotlin코드 복사
import java.util.LinkedList
val linkedList = LinkedList<Int>()
linkedList.add(1)
linkedList.add(2)
linkedList.add(3)
println(linkedList.removeFirst()) // 1
이 외에도 Kotlin은 다양한 컬렉션 함수와 라이브러리를 제공하여 데이터 구조를 더 쉽게 조작할 수 있도록 돕습니다. 위의 자료구조들은 대부분 Java 라이브러리를 활용하여 구현되므로, Java의 자료구조 사용 방법에 익숙하다면 Kotlin에서도 쉽게 사용할 수 있습니다.
'Kotlin' 카테고리의 다른 글
| [Kotlin] 코틀린의 클래스(Class), 생성자(Constructor), 초기화 블록(Initializer blocks), 인스턴스(Instance) 사용법 (2) | 2024.07.22 |
|---|---|
| [Kotlin] 보조 생성자(secondary constructors)에서의 초기화 블록(initializer blocks) 실행 타이밍 (0) | 2024.07.22 |
| [Kotlin] 코틀린 기본 입출력 - 코틀린 코테 준비 (0) | 2024.07.05 |
| [Kotiln] 코틀린 문자열 다루기 (1) | 2024.07.05 |
| [Kotlin] 💗 기본 문법 정리 - 코틀린 코테 준비 (0) | 2024.07.05 |