๐ฑ 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 | 
 
          