[Kotlin] Comparator, Comparable
·
JVM/Kotlin
자료구조에 정렬 기준이 필요할 때 Comparator 라는 인터페이스 정의가 필요하다. Comparator Comprarator 는 인터페이스로 컬렉션을 정렬하는데 필요한 메소드를 정의하고있다. 기본 정렬기준 외에 다른 기준으로 정렬하고자 할 때 쓰인다. 아래 두 메소드는 이름은 다르지만 두 객체를 비교한다는 같은 기능을 목적으로 고안되었다. compare Comparator 의 유일한 추상 메소드로, 반드시 정의해줘야한다. // 우선순위 비교 // a == b => 0 // a Negative value // a > b => Positive value abstract fun compare(a: T, b: T): Int Comparable Comparator 를 커스텀 정렬 기준을 세울 때 ..
[Java, Kotlin] equals, ==, === 비교
·
JVM/Kotlin
Java 든 Kotlin 이든 문자열(String)은 reference 타입이다. Summary 구분 Java Kotlin == (Structural Equality) primitive: 값 비교 reference: (주소) 값 비교 primitive: 값 비교 reference: 참조하여 값 비교 .equals() reference 를 참조하여 값 비교 == 과 동일 === (Referential Eqaulity) X primitive: 값 비교 reference: (주소) 값 비교 주의할 점 1. 코틀린은 사실 primitive type 이 없다. 간단한 정수값을 할당한 변수에도 .toInt, toBoolean() 등 메소드 사용할 수 있는 이유가 여기있다. In Kotlin, everything i..
JUnit5 Error (No found test error)
·
JVM/Error
🔒 문제 상황 Intellij IDEA 에서 Gradle Project, JUnit 을 통해 유닛 테스트 코드를 작성하고 실행했을 때 "No found test: " 에러가 발생했다면? 🔑 해결 방법 1. Gradle Project Rebuild Intellij IDEA 맨 우측 상단에 Gradle - Reload All Gradle Projects 2. Set Module Content Root Project Structure - Modules - Content Root Content root? The source code, build scripts, tests, and documentation. These files are usually organized in a hierarchy. The top-l..
[JAVA] JDK 11 'var' Type Inference
·
JVM/Java
Compile 언어의 변수 선언 방식은 보통 Explicit Declaration이다. Java SE 10 이전 버전까지는 모두 Explicit Declaration을 따랐다. Explicit Declaration Type Example import java.io.BufferedWriter; import java.io.IOException; import java.io.OutputStreamWriter; public class Main { public static void main(String[] args) throws IOException { // Type variable_name = ~~~ String blogName = "Falcon"; int numberOfRegister = 50; Buffered..
[Kotlin] Array SumOf, minOf, maxOf
·
JVM/Kotlin
When to use? (클래스 단위) 배열 요소의 총합, 최대, 최소값을 구하려 할 때. Why? 이전까지는 For loop을 돌려서 총합을 구했음. selector 를 지정하여 간결하게 계산 가능. OrderItem.kt data class OrderItem(val itemName: String, var price : Int, var count : Int) { } main.kt (기존 방법) fun main(args: Array) { val orderArray = arrayOf(OrderItem("Cake", 15000, 3), OrderItem("Coffee", 1500, 10), OrderItem("Tea", 2000, 10)) var sum:Int = 0 for(i in orderArray) {..
[Kotlin] Companion Object (static in Java)
·
JVM/Kotlin
Companion Object 클래스 안에 존재하는 SingleTon Object Comapnion이라는 이름을 가진 static Singletone companion keyword는 그냥 Companion이란 이름을 갖는 클래스 객체를 가리키는 shortcut 역할을 할 뿐. companion object 내에 생성된 변수, 메소드는 부모 클래스의 static 맴버가된다. class - companion object는 1:1 매칭 (오로지 1개씩 선언 가능) class ToBeCalled { companion object Test { val someInteger: Int = 10 fun callMe() = println("You are calling me :)") } } fun main(args: Ar..