본문 바로가기

Back-End/kotlin

[kotlin] groupBy

Story

  1. 환불 시스템은 금액별로 사용자를 처리하게끔 되어있다.
  2. 환불 시스템에 맞춰서 데이터를 가공해야한다.
  3. 가공을 완료 되었다면 환불 시스템을 통해 사용자들에게 환불 처리한다.

Process

사용자들의 환불 정보 이다. 

        val users = listOf<Map<String, Long>>(
            mapOf("userId" to 1, "cashback" to 5000),
            mapOf("userId" to 2, "cashback" to 5000),
            mapOf("userId" to 3, "cashback" to 500),
            mapOf("userId" to 4, "cashback" to 500),
            mapOf("userId" to 5, "cashback" to 3000),
            mapOf("userId" to 6, "cashback" to 2000),
        )

가정하에 5000원을 환불받을 사용자는 2명, 3000원 1명, 2000원 1명, 500원 두명이라고 가정하자.

이때 group by 함수를 사용할 수 있으며 사용 방법이 아주 간단하다. 

 

groupBy란? 

리스트를 여러 그룹으로 이뤄진 맵으로 변경해주는 역할을 하는 함수이다.

위 같은 경우에는 Map<Long, List<Map<String, Long>>> 으로 변경 해준다.

아래와 같은 구조로 그룹화된다.

Conclusion

그룹화된 데이터를 가지고 환불시스템을 통해 등록해준다면 간단히 그룹화된 결과를 가지고 데이터 핸들링이 가능할 것으로 보인다.

 

끄읏 :)

'Back-End > kotlin' 카테고리의 다른 글

apply, with, let, also, run 고차 함수 사용법  (0) 2021.04.13