Víc*_*tín 11 contains list find kotlin
我试图在 kotlin 的对象列表中找到一个值,使用它“过滤器”,但如果找到该值,我需要返回 true 或 false,但过滤器在匹配的情况下返回一个对象列表.
t.filter { it.retailerId == value }
Run Code Online (Sandbox Code Playgroud)
¿如何在对象列表中找到此值时返回布尔值?
Nic*_*zzi 14
或者,firstOrNull您也可以使用any相同的谓词:
val found = t.any { it.retailerId == value }
Run Code Online (Sandbox Code Playgroud)
Dam*_*ero 11
如果您需要元素正好是一:
t.filter { it.retailerId == value }.size == 1
Run Code Online (Sandbox Code Playgroud)
如果不:
t.any { it.retailerId == value }
Run Code Online (Sandbox Code Playgroud)
使用 foldRight 并在找到它时休息一下:
t.foldRight(false) {val, res ->
if(it.retailerId == value) {
return@foldRight true
} else {
res
}
}
Run Code Online (Sandbox Code Playgroud)
firstOrNull()您可以与特定谓词一起使用:
val found = t.firstOrNull { it.retailerId == value } != null
Run Code Online (Sandbox Code Playgroud)
如果firstOrNull()不返回null,则表示已找到该值。
| 归档时间: |
|
| 查看次数: |
3353 次 |
| 最近记录: |