파티션 - Kotlin의 필터링 기능
이번 블로그에서는 Kotlin 필터링 함수 -
partition
에 대해 알아보겠습니다. 술어로 컬렉션을 필터링하고 일치하지 않는 요소를 별도의 목록에 보관합니다.이 문서는 원래 amitshekhar.me에 게시되었습니다.
Kotlin에는 유용한 수집 함수가 많이 있습니다. 그것들에 대해 알고 요구 사항에 따라 사용하는 것이 좋습니다. 이러한 수집 기능 중 하나는
partition
입니다.partition
모음을 조건자로 필터링하고 일치하지 않는 요소를 별도의 목록에 보관합니다.예제를 통해 알아봅시다.
아래와 같은
data
클래스User
를 고려하십시오.data class User(val id: Int, val name: String, val isMentor: Boolean)
그리고
User
목록:val users = arrayOf(
User(1, "Amit", true),
User(2, "Ronaldo", false),
User(1, "Messi", true),
User(3, "Neymar", false))
이제 이 사용자 목록에서
partition
함수를 사용하여 멘토인 사용자와 멘토가 아닌 사용자를 필터링해 보겠습니다.val (mentors, notMentors) = users.partition { it.isMentor }
이제 인쇄하자
mentors
println(mentors)
그러면 다음이 인쇄됩니다.
[User(id=1, name=Amit, isMentor=true),
User(id=1, name=Messi, isMentor=true)]
그리고 인쇄하면
notMentors
println(notMentors)
그러면 다음이 인쇄됩니다.
[User(id=2, name=Ronaldo, isMentor=false),
User(id=3, name=Neymar, isMentor=false)]
소스 코드를 살펴보면 다음 구현을 찾을 수 있습니다.
public inline fun <T> Array<out T>.partition(predicate: (T) -> Boolean): Pair<List<T>, List<T>> {
val first = ArrayList<T>()
val second = ArrayList<T>()
for (element in this) {
if (predicate(element)) {
first.add(element)
} else {
second.add(element)
}
}
return Pair(first, second)
}
그것은 우리가 했을 것과 똑같은 일을 하는 것입니다. 바로 Kotlin이 이러한 유용한 기능을 즉시 사용할 수 있도록 제공하기 때문입니다.
메모:
predicate
가 걸립니다. Pair<List<T>, List<T>>
를 반환합니다. predicate
가 true
를 생성하는 요소가 포함되어 있습니다. predicate
가 false
를 생성하는 요소가 포함되어 있습니다. 지금은 그게 다입니다.
감사
Amit Shekhar
다음에서 나와 연결할 수 있습니다.
Reference
이 문제에 관하여(파티션 - Kotlin의 필터링 기능), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/amitiitbhu/partition-filtering-function-in-kotlin-38d9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)