๐ฑ dreaming DiNO
[Kotlin] ๊ฐ๋ฐํ๋ฉด์ ์ด GroupBy, minByOrNull + a ์ ๋ฆฌ ๋ณธ๋ฌธ
1. ๋ฐ์ดํฐ ํด๋์ค ์ ์ํ์ฌ ๋ฆฌ์คํธ ์์ ๋ด์ -> ๋ฆฌ์คํธ ํ์ธ
data class User(val id: Int, val value: Int)
val user1 = User(1, 133)
val user2 = User(2, 6456)
val user3 = User(3, 554)
val user4 = User(4, 234)
val user5 = User(1, 854)
val people = arrayListOf<User>()
people.add(user1)
people.add(user2)
people.add(user3)
people.add(user4)
people.add(user5)
System.out.println(people)
// [User(id=1, value=133), User(id=2, value=6456), User(id=3, value=554), User(id=4, value=234), User(id=1, value=854)]
2. GroupBy ํจ์ ์ฌ์ฉ
val groupList: Map<Int, List<User>> = people.groupBy { it.id } // it.id๋ฅผ ํค ๊ฐ์ผ๋ก ๋ฆฌ์คํธ๋ฅผ ๊ทธ๋ฃนํ
System.out.println(groupList) // key-value
// {1=[User(id=1, value=133), User(id=1, value=854)], 2=[User(id=2, value=6456)], 3=[User(id=3, value=554)], 4=[User(id=4, value=234)]}
for(i: Int in 1..4) {
System.out.println(groupList[i])
}
/*
[User(id=1, value=133), User(id=1, value=854)]
[User(id=2, value=6456)]
[User(id=3, value=554)]
[User(id=4, value=234)]
*/
3. minByOrNull ์ฌ์ฉ
for(i: Int in 1..4) {
System.out.println(groupList[i]?.minByOrNull { it.value } ?: -1)
}
/*
User(id=1, value=133)
User(id=2, value=6456)
User(id=3, value=554)
User(id=4, value=234)
*/
๊ฐ๊ฐ์ ๋ณ์์ null ๊ฐ์ด ๋ค์ด๊ฐ ์ ์์ผ๋ฏ๋ก ?: ์๋น์ค ์ฐ์ฐ ๋๋ ํ์ ๋ค์?๋ฅผ ์ ๋ ฅํ์ฌ null pointer ์๋ฌ๋ฅผ ๋ฐฉ์ง
์ฐธ๊ณ : https://junyoeng.tistory.com/25
'Android' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Kotlin] ์๋๋ก์ด๋ ์ฝ๋ฃจํด ๊ธฐ๋ณธ ๊ฐ๋ ๊ณผ ํ์ฉ (0) | 2023.06.14 |
---|---|
[Kotlin] ImageView ์ Memery leak (Bitmap ์ฌ์ฉ์) (0) | 2023.06.12 |
[Android] compileSdk, minSdk, targetSdk ์ ๋ฆฌ (0) | 2023.05.19 |
[Kotlin] ๊ฐ๋จํ ์ด๋ฉ์ผ ์ ํจ์ฑ, ์ด๋ฉ์ผ ํจํด ๊ฒ์ฌ (0) | 2023.04.10 |
[Kotlin] Webview ์ ๋ฆฌ (1) | 2023.04.03 |