Kotlin/TIL

TIL (03.20)

내손은개발 🐾 2024. 3. 20. 21:38

CodeKata


문제 시간초과로 아침까지 풀 예정

문제를 풀다가

kotlin에도 swap이 있나 찾아봤다.

import java.util.*

fun main(){
    var a = 1
    var b = 2

    a = b.also { b = a }

    println(a) // 출력 2
    println(b) // 출력 1
//-------------------------------------------------------------
    val nums = listOf(1, 2, 3, 4, 5)
    Collections.swap(nums, 1, 3) //import java.util.*
    println(nums) // 출력 [1, 4, 3, 2, 5]
}

 

 

 

 

Kotlin 문법


오늘 Kotlin In Action에서는 object내용 복습, 싱글턴 정리

 

 

평소 궁금하던(애매하게 알던) 내용 정리

sort/sorted

sort는 원본 리스트 자체를 오름차순으로 정렬

sorted는 원본은 변하지 않고 오름차순으로 정렬


sortBy{}/sortedBy{}

조건을 붙여서 정렬하는 것이다.

예를 들어 길이에 따라 정렬을 한다고 치면

ex) sortBy{it.length}


sortWith{}{}/sortedWith{}{}

여러가지 기준들로 정렬하는 것이다.

fun main(){
    val numList = arrayOf("abc","bcd","bc")

    for(i in numList.sorted()){
//        println(i)
    }

//    for(i in numList.sortedBy { it.length }){
//        println(i)
	}

    println(numList.sortedWith(compareBy<String>{it.length}.thenBy { it }))
}

 

 

hashMap

  • map 인터페이스로 key와 value값으로 데이터를 저장 
  • 해싱을 사용하기 때문에 값을 탐색하는데 있어 뛰어난 성능
  • key는 중복 허용 O / value 중복 허용 X
더보기

put : 데이터 추가

containsKey : 특정 Key값이 포함된지 확인 (Value도 똑같이 사용)

get : 특정 key 값 가져오기

remove : 특정 key 값 삭제

replace : 특정 key 값의 value 변경

fun main(){
    val hashMap = HashMap<String,Any>()

    hashMap.put("name","네임")
    hashMap.put("age",28)
    println(hashMap)
    println(hashMap.containsKey("name"))
    println(hashMap.containsValue("네임"))

    hashMap.remove("age") //{name=네임}
    hashMap.replace("name","nn") //{name=nn}
    hashMap.clear() //{}
}

 

CompareTo

개체를 지정한 개체와 순서를 비교합니다. 이 개체가 지정된 개체와 같으면 0을, 다른 개체보다 작으면 음수를, 다른 개체보다 크면 양수를 반환한다.

fun main(){
    var num1 = 10
    var num2 = 100
    println(num1.compareTo(num2)) //-1
    println(num2.compareTo(num1)) //1
    println(num1.compareTo(num1)) //0
    
    var a = "a"
    var b = "b"
    println(a.compareTo(b)) //-1
}

 

 

 

 

과제 진행 완료

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

TIL (03.22)  (1) 2024.03.22
TIL (03.21)  (0) 2024.03.21
TIL (03.19)  (0) 2024.03.19
TIL (03.18)  (0) 2024.03.18
TIL (03.15)  (0) 2024.03.15