๐ก๊ธฐ๋ณธ ๊ท์น
sort(), sortBy(), sortWith() ๋ ๊ธฐ์กด collection์ ์์ ํ ์ ์๋ ๋ฉ์๋์ด๋ค.
sorted(), sortedBy(), sortedWith() ๋ ๊ธฐ์กด collection์ด ๋ณํ์ง ์๋๋ค.
์์ ๋์จ ๋์ฌ๊ฐ ์๋ํ๊ฐ ๋๋ฉด ๊ธฐ์กด collection์ด ๋ณํ์ง ์๋๋ค๊ณ ๋ณด๋ฉด ๋ ๋ฏ! ๋ค์ reverse(), reversed(), sortByDescending(), sortedByDescending() ๋ ๋ชจ๋ ๊ฐ์ ๊ท์น ์ ์ฉ!
๐ ๋ฉ์๋ ์ ์
sort() - ์ค๋ฆ์ฐจ์ ์ ๋ ฌ
sortByDescending() - ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ
reverse() - ์๋ค ๋ฐฐ์ด ์์ ๋ค์ง๊ธฐ
shuffled() - ๋๋ค ์ ๋ ฌ
Kotlin sort
1. ์ค๋ฆ์ฐจ์
val nums = mutableListOf(3, 1, 7, 2, 8, 6)
nums.sort()
// nums: [1, 2, 3, 6, 7, 8]
2. ๋ด์์ฐจ์
nums.sortDescending();
// nums: [8, 7, 6, 3, 2, 1]
Kotlin sorted
1. ์ค๋ฆ์ฐจ์
val nums = mutableListOf(3, 1, 7, 2, 8, 6)
val sortedNums = nums.sorted()
// nums: [3, 1, 7, 2, 8, 6]
// sortedNums: [1, 2, 3, 6, 7, 8]
2. ๋ด์์ฐจ์
val sortedNumsDescending = nums.sortedDescending()
// nums: [3, 1, 7, 2, 8, 6]
// sortedNumsDescending: [8, 7, 6, 3, 2, 1]
Kotlin sortBy
1. ์ค๋ฆ์ฐจ์
val myDates = mutableListOf(
MyDate(4, 3),
MyDate(5, 16),
MyDate(1, 29)
)
myDates.sortBy { it.month }
myDates.forEach { println(it) }
/*
MyDate(month=1, day=29)
MyDate(month=4, day=3)
MyDate(month=5, day=16)
*/
2. ๋ด์์ฐจ์
myDates.sortByDescending { it.month }
myDates.forEach { println(it) }
/*
MyDate(month=5, day=16)
MyDate(month=4, day=3)
MyDate(month=1, day=29)
*/
Kotlin sortedBy
1. ์ค๋ฆ์ฐจ์
val myDates = mutableListOf(
MyDate(4, 3),
MyDate(5, 16),
MyDate(1, 29)
)
val sortedDates = myDates.sortedBy { it.month }
myDates.forEach { println(it) }
/*
MyDate(month=4, day=3)
MyDate(month=5, day=16)
MyDate(month=1, day=29)
*/
sortedDates.forEach { println(it) }
/*
MyDate(month=1, day=29)
MyDate(month=4, day=3)
MyDate(month=5, day=16)
*/
2. ๋ด์์ฐจ์
val sortedDatesDescending = myDates.sortedByDescending { it.month }
myDates.forEach { println(it) }
/*
MyDate(month=4, day=3)
MyDate(month=5, day=16)
MyDate(month=1, day=29)
*/
sortedDatesDescending.forEach { println(it) }
/*
MyDate(month=5, day=16)
MyDate(month=4, day=3)
MyDate(month=1, day=29)
*/
Kotlin sortWith
1. ์ค๋ฆ์ฐจ์
val myDates = mutableListOf(
MyDate(8, 19),
MyDate(5, 16),
MyDate(1, 29),
MyDate(5, 10),
MyDate(8, 3)
)
myDates.sortWith(compareBy { it.month }.thenBy { it.day })
myDates.forEach { println(it) }
/*
MyDate(month=1, day=29)
MyDate(month=5, day=10)
MyDate(month=5, day=16)
MyDate(month=8, day=3)
MyDate(month=8, day=19)
*/
2. ๋ด๋ฆผ์ฐจ์
myDates.reverse()
sortedDatesDescending.forEach { println(it) }
/*
MyDate(month=8, day=19)
MyDate(month=8, day=3)
MyDate(month=5, day=16)
MyDate(month=5, day=10)
MyDate(month=1, day=29)
*/
Kotlin sortedWith
1. ์ค๋ฆ์ฐจ์
val sortedDates = myDates.sortedWith(compareBy { it.month }.thenBy { it.day })
myDates.forEach { println(it) }
/*
MyDate(month=8, day=19)
MyDate(month=5, day=16)
MyDate(month=1, day=29)
MyDate(month=5, day=10)
MyDate(month=8, day=3)
*/
sortedDates.forEach { println(it) }
/*
MyDate(month=1, day=29)
MyDate(month=5, day=10)
MyDate(month=5, day=16)
MyDate(month=8, day=3)
MyDate(month=8, day=19)
*/
2. ๋ด๋ฆผ์ฐจ์
val sortedDatesDescending = myDates.sortedWith(compareBy { it.month }.thenBy { it.day }).reversed()
myDates.forEach { println(it) }
/*
MyDate(month=8, day=19)
MyDate(month=5, day=16)
MyDate(month=1, day=29)
MyDate(month=5, day=10)
MyDate(month=8, day=3)
*/
sortedDatesDescending.forEach { println(it) }
/*
MyDate(month=8, day=19)
MyDate(month=8, day=3)
MyDate(month=5, day=16)
MyDate(month=5, day=10)
MyDate(month=1, day=29)
*/
โฐ ์๊ณ ๋ฆฌ์ฆ ํ์ด
https://occhiolism.tistory.com/31
์ถ์ฒ: https://www.bezkoder.com/kotlin-sort-list/#Kotlin_sorted
bezcode ์น์ฌ์ดํธ๊ฐ ์ค๋ช ์ด ์ ๋ง ์ ๋์์๋ค :))
'Android (Kotlin) > kotlin ๋ฌธ๋ฒ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Kotlin] ์ ์ฉํ ๊ธฐ๋ฅ (1) | 2023.12.04 |
---|---|
[Kotlin] List - forEach (2) | 2023.12.04 |
[Kotlin] abstract vs interface (1) | 2023.12.03 |
[Kotlin] Data Class (1) | 2023.12.03 |
[kotlin] joinToString(prefix, suffix, separator) ๋ฆฌ์คํธ๋ฅผ ๋ฌธ์์ด๋ก ๋ฐ๊พธ๊ธฐ (1) | 2023.12.02 |