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 |