Отфильтровать данные по спику аргументов

Есть коллекция с какими-то объектами. Допустим у каждого из них есть id. Есть еще список с каким-то количеством id.

Нужно из списка объектов сделать выборку объектов по списку id. Как это сделать простым путем на Java я это знаю. Мне придется пробежать по массиву объектов столько раз сколько элементов в списке id и повыбирать оттуда. Но мне кажется, что на котлине есть более элегантное решение. Буду благодарен если кто подскажет.


Ответы (1 шт):

Автор решения: Alex_Skvortsov

Можно использовать метод filter

data class SomeClass(
        val id: Int,
        val value: String
)

fun so(){
    val idList = listOf(1, 3, 5)
    val objectsList = listOf(SomeClass(0, "0"), SomeClass(1, "1"), SomeClass(2, "2"), SomeClass(3, "3"), SomeClass(4, "4"), SomeClass(5, "5"))
    val filtered = objectsList.filter { it.id in idList }
    println(filtered)
}
→ Ссылка