簡體   English   中英

Kotlin - 檢查數組包含值的慣用方法

[英]Kotlin - Idiomatic way to check array contains value

檢查字符串數組是否包含 Kotlin 中的值的慣用方法是什么? 就像ruby的#include? .

我想:

array.filter { it == "value" }.any()

有沒有更好的辦法?

您正在尋找的等效項是contains運算符。

array.contains("value") 

Kotlin 為該運算符提供了另一種中綴表示法

"value" in array

它是在幕后調用的相同函數,但由於在 Java 中找不到中綴表示法,我們可以說in是最慣用的方式。

您還可以檢查數組是否包含具有某些特定字段的對象以與使用any()進行比較

listOfObjects.any{ object -> object.fieldxyz == value_to_compare_here }

這是代碼,您可以在其中找到帶有對象的 ArrayList 中的特定字段。 Amar Jain 的回答幫助了我:

listOfObjects.any{ it.field == "value"}

使用in運算符是一種慣用的方法。

val contains = "a" in arrayOf("a", "b", "c")

您可以使用in運算符,在這種情況下,調用contains

"value" in array

你可以使用它..contains(" ")

 data class Animal (val name:String)


 val animals = listOf(Animal("Lion"), Animal("Elephant"), Animal("Tiger"))

 println(animals.filter { it.name.contains("n") }.toString())

輸出將是

[Animal(name=Lion), Animal(name=Elephant)]

您可以使用find方法,它返回與給定 [predicate] 匹配的第一個元素,如果沒有找到這樣的元素,則返回null 嘗試使用此代碼在對象array中查找value

 val findedElement = array?.find {
            it.id == value.id
 }
 if (findedElement != null) {
 //your code here           
 } 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM