Kotlin for문 index 포스팅 썸네일 이미지

Kotlin/Syntax

Kotlin for문 index

Kotlin서 List를 사용할 때 For문을 index를 기준으로 반복하는 방법 https://play.kotlinlang.org/ 1. withIndex 사용 withIndex를 사용하면 (index, value) 쌍값을 얻을 수 있다. index와 value 2개의 값을 읽을 수 있으므로 2개의 값을 이용해야만 할 때 유용하게 사용 가능하다. 여기서 생성된 index와 value는 read only로써 값 변경은 불가능 하다. 2. indices 사용 i라는 index값을 사용하여 for문을 반복하며 기존의 변수 i를 선언 후 list의 size만큼 반복문을 돌리던 기존 방식과 유사하다. 위 withIndex와 달리 value값을 위해서는 index를 사용하여 list2를 읽어야 한다. 또한. 1번..

2022.03.22 게시됨

Kotlin Java equals() 포스팅 썸네일 이미지

Kotlin/Syntax

Kotlin Java equals()

Java ==, Kotlin === 동일 둘은 참조 대상을 비교하는 동일한 동작을하며, 비교대상끼리 같은 객체를 참조하는 경우 true를 반환 Java equals(), Kotlin == 동일 둘은 동일하게 참조 대상의 구조(값)을 비교하여 동일할 경우 true를 반환 단, Java의 equals와 다르게 Kotlin의 ==는 비교 동작하기 전 비교 대상들의 null 체크를 수행하여 null값이 있을 경우 NullPointerException이 발생하는 Java의 equals 메서드와 차이를 갖는다. 예시) 다음과 같은 경우 B와 C는 동일한 객체를 참조함으로써 Kotlin에서 B===C는 true를 갖는다. 반면에 A와 B는 "Lee"라는 동일한 문자열값을 갖고 있지만 다른 객체를 참조하고 있으므로 A..

2022.03.21 게시됨

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 조합(Combination) 포스팅 썸네일 이미지

Kotlin/Algorithm

Kotlin 조합(Combination)

1. 조합 (Combination) 조합 : 서로 다른 n개의 원소 중에서 순서에 상관없이 r개를 선택하는 것 ex) a, b, c 가 있을 경우 1개 선택 -> (a), (b), (c) 2개 선택 -> (a,b), (a,c), (b,c) 3개 선택 -> (a,b,c) 이처럼 조합의 경우의 수를 구할 수 있다. 2. 코 드 환경 : Kotlin Version = 1.4.20, JVM fun combination(answer: MutableList, el: List, ck: Array, start: Int, target: Int) { if(target == 0) { answer.addAll( listOf(el.filterIndexed { index, t -> ck[index] }) ) } else { fo..

2020.12.05 게시됨

Kotlin Permutation(순열) 포스팅 썸네일 이미지

Kotlin/Algorithm

Kotlin Permutation(순열)

1. Permutation - 순열 순열 : 서로 다른 n개의 원소에서 r개를 중복없이 골라 순서에 상관있게 나열하는 것 ex) a, b, c 가 있다면 1개 선택 -> (a), (b), (c) 2개 선택 -> (a,b), (a,c), (b,a), (b,c), (c,a), (c,b) 3개 선택 -> (a,b,c), (a,c,b), (b,a,c), (b,c,a), (c,a,b), (c,b,a) 이처럼 순열을 구할 수 있다. Kotlin에서는 회귀와 flatMap 함수를 사용하여 순열을 구현할 수 있다. Kotlin flatMap - 원소 값 변경 및 추가 1. flatMap flatMap 함수는 map 함수와 유사한 동작을 한다. 2020/11/25 - [Kotlin/Collections] - Kotlin..

2020.12.04 게시됨

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 게시됨