Vivek Modi
05/17/2022, 9:18 AMval completeEvent = events?.lastOrNull { events -> events.status == "complete" }
val activeEvent = events?.find { events -> events.status == "active" }
val futureEvent = events?.firstOrNull { events -> events.status == "future" }
ApiResponse
"Events": [{
"title": "Test 1",
"status": "complete"
}, {
"title": "Test 2",
"status": "complete"
}, {
"title": "Test 3",
"status": "complete",
}, {
"title": "Test 4",
"status": "complete"
}, {
"title": "Test 5",
"status": "complete"
}, {
"title": "Test 6",
"status": "active"
}, {
"title": "Test 7",
"status": "future"
}, {
"title": "Test 8",
"status": "future"
}]
gildor
05/17/2022, 10:07 AMgildor
05/17/2022, 10:10 AMlastOrNull
so there is always cases when 3 separate first/last will be actually faster than a single forEach (because it always iterate all the items)
So I think it’s a legit solution for your particular exampleVivek Modi
05/17/2022, 10:17 AMJonas de Faria Alves
05/17/2022, 11:11 AMlastOrNull
iterates backwards, so it doesn’t “always iterate all the items”gildor
05/17/2022, 12:10 PMVivek Modi
05/17/2022, 12:13 PMVivek Modi
05/17/2022, 12:14 PM