Kotlin groupBy - 조건에 따라 리스트 원소 묶기 포스팅 썸네일 이미지

Kotlin/Collections

Kotlin groupBy - 조건에 따라 리스트 원소 묶기

1. groupBy associate 함수는 List의 원소에서 두 값을 묶어서 Map의 타입으로 만들어 주었다. groupBy 함수 또한 Map 타입으로 만들어 주며 Key : group을 묶어줄 조건 Value : Key 조건에 만족하는 원소들 리스트 에 따라 값을 묶어줄 수 있다. 2. 코 드 환경 : Kotlin Version = 1.4.20, JVM data class Book(var name: String, var writer: String, var price: Int) fun main(args: Array) { val arr = mutableListOf() arr.add(Book("name1", "writer1", 12000)) arr.add(Book("name2", "writer2", 21..

2020.12.06 게시됨

Kotlin Associate - Key, Value로 묶기 포스팅 썸네일 이미지

Kotlin/Collections

Kotlin Associate - Key, Value로 묶기

1. Association Association 함수를 사용하면 Map 형식의 타입으로 값들을 묶어줄 수 있다. 만약 Class 타입을 담는 리스트가 있다. 여기서 특정 프로퍼티를 Key, Value로 선택하여 Map 형식으로 만들어 줄 수 있다. Map 형식이기 때문에 중복된 Key는 갖을 수 없다. 2. 코 드 환경 : Kotlin Version = 1.4.20, JVM data class Book(var name: String, var writer: String, var price: Int) fun main(args: Array) { val arr = mutableListOf() arr.add(Book("name1", "writer1", 12000)) arr.add(Book("name2", "wri..

2020.12.05 게시됨

Kotlin 중복 원소 제거 - distinct 포스팅 썸네일 이미지

Kotlin/Collections

Kotlin 중복 원소 제거 - distinct

1. distinct - 중복 원소 제거 Collections에서 중복된 원소를 제거하기 위해서 distinct 함수를 사용할 수 있다. distinct public fun Iterable.distinct(): List { return this.toMutableSet().toList() } 함수를 살펴보면 단순히 MutableSet으로 변환한 후 List로 변환하여 반환해준다. 해당 함수 실행 후 중복된 원소는 제거되며 순서는 유지된다. 2. 코 드 환경 : Kotlin Version = 1.4.20, JVM fun main(args : Array) { val ml = mutableListOf(1, 3, 2, 4, 5) ml.addAll(listOf(3, 2, 3, 1, 4, 5, 6)) println(..

2020.12.03 게시됨

Kotlin PriorityQueue(우선순위 큐) 포스팅 썸네일 이미지

Kotlin/Collections

Kotlin PriorityQueue(우선순위 큐)

1. PriorityQueue(우선순위 큐) Priority Queue(우선순위 큐)는 이진트리의 형태로 오름차순 혹은 내림차순으로 값을 저장한다. 값에 접근하기 위해서는 Stack의 Top 부분 처럼 peek 함수를 사용하여 트리의 Top을 읽을 수 있다. 트리의 Top을 읽음으로써 해당 원소들 중에서 최소값 혹은 최대값을 얻을 수 있다. 사용하기 위해서 "import java.util.*" 를 해주어야 한다. 2. 코 드 환경 : Kotlin Version = 1.4.20, JVM import java.util.* fun main(args : Array) { val pq = PriorityQueue() val pq2 = PriorityQueue(Collections.reverseOrder()) /* ..

2020.12.03 게시됨

Kotlin Deque(덱 or 디큐) 포스팅 썸네일 이미지

Kotlin/Collections

Kotlin Deque(덱 or 디큐)

1. Deque(덱 or 디큐) Deque 덱이라고 부르며 디큐라고로 부른다. Queue가 한쪽으로는 삽입만 하고 다른 한쪽으로 삭제만 가능한 구조였다면 Deque란 양쪽 방향에서 삽입, 삭제가 가능한 자료 구조이다. 상황에 따라 스택이나 큐처럼 사용할 수도 있는 유연함을 갖고 있다. 사용하기 위해서 "import java.util.ArrayDeque" 를 해주어야 한다. 2. 코 드 환경 : Kotlin Version = 1.4.20, JVM import java.util.ArrayDeque fun main(args : Array) { var dq = ArrayDeque() /* 삽입 */ dq.add(5) dq.addFirst(2) // 앞에 삽입 dq.addLast(4) // 뒤에 삽입 dq.add..

2020.12.02 게시됨

Kotlin Pair, Triple Val cannot be reassigned - Pair 값 수정 포스팅 썸네일 이미지

Kotlin/Collections

Kotlin Pair, Triple Val cannot be reassigned - Pair 값 수정

1. Val cannot be reassigned - Pair 값 수정 Kotlin 에서는 Pair와 Triple에 있는 프로퍼티는 val로 선언되어 Read-only 이다 Kotlin 변수 묶기 Pair, Triple 1. 2개의 변수 묶기 - Pair data class Pair (val first: A, val second: B) Pair 클래스는 다음과 같이 정의되어 있다. Pair 클래스는 data class로서 2개의 변수를 묶어 사용하기 유용하다. fun main().. notepad96.tistory.com 따라서 수정이 가능한 Pair, Triple를 사용하기 위해서는 Kotlin 에서 지원하는 Pair와 Triple을 사용해서는 안된다. 대신 data class를 사용하여 새로운 구조를..

2020.12.02 게시됨

Kotlin 큐(Queue) 포스팅 썸네일 이미지

Kotlin/Collections

Kotlin 큐(Queue)

1. Queue(큐) Queue는 선입선출(먼저 입력된 것이 먼저 출력된다)의 구조를 갖는 자료구조이다. Queue는 다음 그림과 같이 선착순 줄서기와 동일하다고 볼 수 있다. 가장 먼저 줄을 선 사람(가장 먼저 입력된)이 가장 먼저 일을 수행(가장 먼저 출력) 한다. Kotlin 에서는 Stack처럼 구현된 것이 없어 직접 구현하거나 혹은 Java에서 사용하였던 LinkedList와 Queue를 사용할 수 있다. 이를 사용하기 위해서 Queue와 LinkedList를 가져와야 함으로 'import java.util.*'를 해주어야만 한다. 2. 코 드 환경 : Kotlin Version = 1.4.20, JVM import java.util.* fun main(args : Array) { var q: ..

2020.12.01 게시됨

Kotlin 스택(Stack) 포스팅 썸네일 이미지

Kotlin/Collections

Kotlin 스택(Stack)

1. Stack(스택) Stack은 후입선출(나중에 입력된 것이 먼저 출력된다)의 구조를 갖는 자료구조이다. Stack의 구조는 그림과 같이 어느 상자 속에 물건을 넣고 빼는 행위를 하는 것과 동일하다. 이같은 상황에서 나중에 상자에 넣는 물건은 먼저 넣은 물건의 위에 위치하게 되며, 아래에 있는 물건을 꺼내기 위해서는 위에 있는 물건들을 먼저 꺼내야만 한다. 그래서 후입선출(나중에 들어온 것이 가장 먼저 나간다)의 구조인 것이다. Kotlin에서는 구현된 Stack이 없으므로 사용하기 위해서는 직접 구현하거나 Java에 있는 Stack을 사용할 수 있다. 따라서 사용하기 위해서는 'import java.util.Stack' 을 해주어야 한다. 2. 코 드 환경 : Kotlin Version = 1.4...

2020.11.30 게시됨