Notice
Recent Posts
Recent Comments
Link
ยซ   2024/10   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Tags
more
Archives
Today
Total
๊ด€๋ฆฌ ๋ฉ”๋‰ด

๐ŸŒฑ dreaming DiNO

[Kotlin] ๊ฐœ๋ฐœํ•˜๋ฉด์„œ ์“ด GroupBy, minByOrNull + a ์ •๋ฆฌ ๋ณธ๋ฌธ

Android

[Kotlin] ๊ฐœ๋ฐœํ•˜๋ฉด์„œ ์“ด GroupBy, minByOrNull + a ์ •๋ฆฌ

MK_____ 2023. 6. 1. 10:20

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