Kotlin

    [Kotlin Collection] Kotlin에서 확장함수를 이용해 Collection 조작하기

    목표 Collection 확장함수가 하는 일을 이해한다. 자유롭게 확장 함수를 이용해 데이터를 조작한다. 개요 Kotlin에서는 일반 컬렉션에도 함수형 프로그래밍을 위한 확장 함수를 제공하여, 데이터를 조작하기 쉽게 만들었습니다. 대표적으로 기존에는 특정한 값들을 걸러내기 위해 iteration을 돌려 하나하나 값을 확인하는 것을 코드로 써야 했습니다. 아래는 기존 방식으로 리스트(exampleList)에서 특정 값을 제외한 리스트(filteredList)를 만드는 예제입니다. val exampleList = mutableListOf(1, 2, 3) val filteredList = mutableListOf() for (number in exampleList) { if (number != 1) filte..

    [Stack Class] Stack

    목표 Stack의 특징을 익힌다. Stack의 사용법과 구현을 익힌다. 개요 Stack은 LIFO(Last In First Out)의 특징을 가지는 자료 구조이다. 즉, 맨 마지막에 들어온 값이 가장 먼저 나가는 자료 구조이다. Kotlin에서는 Stack을 사용하기 위에 JCF의 Stack을 가져와 사용한다. Stack의 상속구조는 조금 복잡해서 List 위쪽(List가 확장하는 인터페이스)은 간소하게 표현했다. 생성 Stack의 생성은 간단하다. Stack은 클래스이기 때문에, 생성자를 이용해 생성할 수 있다. val stack: Stack = Stack() 조작 Stack의 조작 방법은 간단하다. Stack 클래스에서는 총 3가지의 Stack 연산을 지원한다. Stack에서 Vector Class를..

    [Kotlin Collection] ArrayBlockingQueue를 이용한 Queue의 생성 및 활용

    목표 Queue의 특징을 익힌다. Queue 인터페이스를 구현하는 클래스(ArrayBlockingQueue)의 사용법과 특징을 익힌다. 개요 Queue란 FIFO(First In First Out)의 특징을 갖는 자료 구조이다. 즉, 먼저 들어온 값이 먼저 나가는 자료구조이다. Kotlin에서는 Queue를 구현하기 위해 JCF(Java Collection Framework)에서 제공하는 Queue Interface를 이용한다. 하지만, Queue는 단순한 인터페이스이므로, 인터페이스를 구현하는 Class를 사용해야 하는데, 우리는 우리는 그중 ArrayBlockingQueue를 사용하여 Queue를 다루어본다. 생성 Queue 인터페이스를 이용하기 위해서는 인터페이스를 구현하는 구현체를 이용해야 한다...

    [Kotlin Collection] Kotlin LinkedList를 이용한 Queue의 생성 및 활용 : add와 offer의 차이, remove와 poll, element와 peek의 차이 알아보기

    목표 Queue의 특징을 익힌다. Queue 인터페이스를 구현하는 클래스(LinkedList)의 사용법과 특징을 익힌다. 개요 Queue란 FIFO(First In First Out)의 특징을 갖는 자료 구조이다. 즉, 먼저 들어온 값이 먼저 나가는 자료구조이다. Kotlin에서는 Queue를 구현하기 위해 JCF(Java Collection Framework)에서 제공하는 Queue Interface를 이용한다. 하지만, Queue는 단순한 인터페이스이므로, 인터페이스를 구현하는 Class를 사용해야 하는데, 우리는 우리는 그중 LinkedList를 사용하여 Queue를 다루어본다. 생성 Queue 인터페이스를 이용하기 위해서는 인터페이스를 구현하는 구현체를 이용해야 한다. 그 중 대표적인 것이 Lin..

    [Kotlin Collection] Kotlin HashSet과 LinkedHashSet 알아보기

    목표 Set API에 대한 이해를 높인다. HashSet, LinkedHashSet을 생성하는 방법과 다루는 방법을 익힌다. 개요 Set은 중복을 허용하지 않는 자료구조로, 중복된 값이 들어오면 값이 입력이 되지 않는다. Java에서 제공하는 HashSet의 종류는 두 가지이다. 하나는 HashSet이고, 다른 하나는 LinkedHashSet이다. 둘의 차이점은 HashSet은 요소의 순서를 저장하지 않고, LinkedHashSet은 요소의 순서를 저장한다는 점이다. Kotlin은 자바의 HashSet과 LinkedHashSet을 그대로 가져오는 형태로 만들어졌으며, Mutable Interface와 Immutable Interface를 제공하여 이 Set들을 조작할 수 있는지를 코드 단에서 결정한다. ..