코딩/코드리뷰
for문 filter와 map으로 변경하기
코딩하는후운
2021. 8. 27. 09:32
반응형
1. 내가 짠 소스
for( data in images ) {
if( data.type == TYPE ) {
list.add(data)
}
}
filter와 map을 이용
list.addAll(
images.filter { data ->
data.type == TYPE
}.map { data ->
data
}
)
성능상 부담스럽다면 mapNotNull을 이용할 수도
list.addAll(
images.mapNotNull { data ->
data.takeIf{
data.type == TYPE
}?.let {
it
}
}
)
filter() : 필터
filter()는 리스트내에 인자들 중 조건에 일치하는 인자만 필터링합니다.
map() : 변환
map()은 컬랙션 내 인자를 변환하여 반환할 때 사용됩니다.
mapNotNull() : 변환
mapIndexed()는 컬랙션에 포함된 인자의 인덱스 값을 변환하여 사용할 수 있습니다.
참조:
반응형