KodeCata
새로 알게된 내용
flatten
중첩된 컬렉션(리스트 안에 리스트, 맵 안에 리스트 등)을 평면화하여 하나의 단일 컬렉션으로 만드는 함수입니다. 즉, 중첩된 구조를 가진 컬렉션을 평평한 구조로 변경합니다.
예시코드
val exList = listOf(listOf(1, 2, 3), listOf(4, 5, 6), listOf(7, 8, 9))
val exList = nestedList.flatten()
println(exList) // [1, 2, 3, 4, 5, 6, 7, 8, 9]
groupingBy
컬렉션의 요소를 그룹화하는 함수입니다. 이 함수는 각 요소를 특정 기준에 따라 그룹으로 나누고, 각 그룹에 대한 맵을 반환합니다.
val list = listOf("apple", "banana", "apricot", "orange", "pear")
val groups = list.groupingBy { it.first() }
for ((key, elements) in groups) {
println("$key: ${elements.toList()}")
}
//출력
a: [apple, apricot]
b: [banana]
o: [orange]
p: [pear]
filterNotNull
fun main(){
val exList = listOf("Pizza", null, "Risotto", "Pasta", "Hamburger")
println(exList.filter { it.startsWith('P') }) // X
println(exList.filterNotNull().filter { it.startsWith('P') })
}
null이 있는경우 filter에 it?.startsWith("P") ?: false 처럼 사용할 수 있지만 filter을 통해 null을 제거하고 할 수 있다.
Android
사진을 등록하면 이미지가 사각형으로 등록이 되었는데 프로필사진처럼 동그랗게 저장하고 싶어 찾아보다가
CircleImageView를 찾아서 사용해보았다.
Today
- 첫째주에 했던 프로젝트에서 생각없이 블로그와 공식문서로만 보고 구현했던 RecyclerView를 다시 사용해 보았다. 아직 이해를 완벽히 못했다.
-> 2주차 특별과제가 나왔는데 또 만들기에는 의미가 없을 것 같아서 RecylerView를 이해해서 사용할 수 있을 정도면 구현을 해볼 생각이다.
- 과제 진행으로 Activity와 Fragment의 생명주기에 대해 정리하였다. 나머지도 정리되고 한번에 올릴 예정이다.
'Kotlin > TIL' 카테고리의 다른 글
TIL (03.29) (2) | 2024.03.29 |
---|---|
TIL (03.28) (0) | 2024.03.28 |
TIL (03.26) (0) | 2024.03.26 |
TIL (03.25) (1) | 2024.03.25 |
TIL (03.22) (1) | 2024.03.22 |