私は配列を持っています:
var month: List<String> = arrayListOf("January", "February", "March")
リストをフィルタリングする必要があるので、"January"
のみが残ります。
このコードを使用して、このコードを使用して配列から1月を除外できます。
var month: List<String> = arrayListOf("January", "February", "March")
// to get the result as list
var monthList: List<String> = month.filter { s -> s == "January" }
// to get a string
var selectedMonth: String = month.filter { s -> s == "January" }.single()
コレクションをフィルタリングするための関数がいくつかあります。"January"
に一致する値のみを保持する場合は、単純な filter()
を使用できます。
val months = listOf("January", "February", "March")
months.filter { month -> month == "January" } // with explicit parameter name
months.filter { it == "January" } // with implicit parameter name "it"
これらは、"January"
のみを含むリストを提供します。
すべての月がnot"January"
である場合は、!=
を使用して条件を逆にするか、 filterNot()
:
months.filter { it != "January" }
months.filterNot { it == "January" }
これらは、"February"
と"March"
を含むリストを提供します。
Javaとは異なり、Kotlinで==
および!=
演算子を使用することは、実際にオブジェクトでequals
関数を呼び出すことと同じであることに注意してください。詳細については、 equality に関するドキュメントを参照してください。
標準ライブラリのコレクション関数の完全なリストについては、 APIリファレンスを参照してください 。
月を含む文字列のこのリストをフィルタリングします。
var month : List<String> = arrayListOf("January", "February", "March")
リストの filterNot()
メソッドを使用できます。指定された述語を除くすべての要素を含むリストを返します。
var filteredMonthList : List<String> = month.filterNot { s -> s == "January" }
// results: ["February", "March"]
リストの filter()
メソッドを使用できます。指定された述語に一致するすべての要素を含むリストを返します。
var filteredMonthList : List<String> = month.filter { s -> s == "January" }
// results: ["January"]
filter()
の後に single()
メソッドを使用すると、1つの値が返され、リストに複数の値がある場合は例外がスローされます。
var filteredMonth : String = month.filter { s -> s == "January" }.single()
// result: "January"
カスタムリストがあり、それがnullまたは空白であるかどうかを確認すると、Kotlinを1行でチェックできることを共有しています
fun filterList(listCutom: List<Custom>?) {
var fiterList = listCutom!!.filter { it.label != "" }
//Here you can get the list which is not having any kind of lable blank
}
複数の条件も確認できます
fun filterList(listCutom: List<Custom>?) {
var fiterList = listCutom!!.filter { it.label != "" && it.value != ""}
//Here you can get the list which is not having any kind of lable or value blank
}
注:label&valueはCustom Modelクラスの変数であると想定しています。
find またはfindLast
を使用することもできます。これは、String
の場合に返されるfilter
のリストではなく、1つの値のみを返すことを特に意図しています。
var month = arrayListOf("January", "February", "March")
var result = month.find { s -> s == "January" }