Kotlin Deque(덱 or 디큐)

Notepad96

·

2020. 12. 2. 22:57

300x250

 

 

 

 


1. Deque(덱 or 디큐)

 

Deque 이라고 부르며 디큐라고로 부른다.

 

 

Queue가 한쪽으로는 삽입만 하고 다른 한쪽으로 삭제만 가능한 구조였다면

Queue, 큐

 

 

 

 

Deque양쪽 방향에서 삽입, 삭제가 가능한 자료 구조이다.

Deque, 덱

 

상황에 따라 스택이나 큐처럼 사용할 수도 있는 유연함을 갖고 있다.

 

 

 

사용하기 위해서 "import java.util.ArrayDeque" 를 해주어야 한다.

 

 

 

 


2. 코 드

환경 : Kotlin Version = 1.4.20, JVM

import java.util.ArrayDeque

fun main(args : Array<String>) {
    var dq = ArrayDeque<Int>()
    /* 삽입 */
    dq.add(5)
    dq.addFirst(2)  // 앞에 삽입
    dq.addLast(4)   // 뒤에 삽입
    dq.add(3)          // 뒤에 삽입

    println("==================삽 입==================")
    println(dq)
    println("Size : ${dq.size}")
    println("3 존재 : ${dq.contains(3)}")
    println("1 존재 : ${dq.contains(1)}")

    dq.forEachIndexed { index, i -> print("${index}:${i} ") }

    println("\n==================접 근==================")
    println("index 3 = ${dq.elementAt(3)}")
    println("index 1 = ${dq.elementAt(1)}")
    println("맨 앞 : ${dq.first}")
    println("맨 뒤 : ${dq.last}")

    println("==================삭 제===================")
    println("앞에 삭제 : ${dq.remove()}")   // 맨 앞 삭제
    // println("앞에 삭제 : ${dq.removeFirst()}")
    println("앞에 삭제 : ${dq.removeLast()}")
    
    println(dq)
}

 

결 과

 

- add 함수를 사용하여서 삽입이 가능하며 맨 뒤에 원소를 삽입한다.

 

addFirst, addLast 함수를 사용하여 각각 맨 앞, 맨 뒤에 값을 삽입할 수 있다.

 

 

 

 

- size 프로퍼티를 사용하여 길이를 가져올 수 있으며

 

contains 함수를 사용하여 해당 값이 존재하는지 판별할 수 있다.

 

 

 

 

- first와 last 프로퍼티를 사용하여 각각 맨 앞과 맨 뒤 원소를 읽을 수 있으며

 

elementAt 함수를 사용하여서 index를 인수로주면 해당 index의 원소를 읽을 수 있다.

 

 

 

 

 

- remove 함수를 사용하여서 삭제가 가능하며 맨 앞에 원소를 삭제한다.

 

removeFirst와 removeLast 함수를 사용하면 각각 맨 앞과 맨 뒤 원소를 삭제할 수 있다.

 

 

 

 

 


3. 참 조

 

 

ArrayDeque - Kotlin Programming Language

 

kotlinlang.org

 

300x250

'Kotlin > Collections' 카테고리의 다른 글

Kotlin 중복 원소 제거 - distinct  (0) 2020.12.03
Kotlin PriorityQueue(우선순위 큐)  (0) 2020.12.03
Kotlin Pair, Triple Val cannot be reassigned - Pair 값 수정  (0) 2020.12.02
Kotlin 큐(Queue)  (0) 2020.12.01
Kotlin 스택(Stack)  (0) 2020.11.30