我有一个数组:
var month: List<String> = arrayListOf("January", "February", "March")
我必须过滤列表,所以只剩下一个"January"
。
我有一个数组:
var month: List<String> = arrayListOf("January", "February", "March")
我必须过滤列表,所以只剩下一个"January"
。
Answers:
您可以使用此代码通过使用以下代码从数组中过滤掉一月
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()
.equals
显式使用。仅使用==
将做正确的事情会更惯用。
month.single { s -> s == "January" }
有许多用于过滤集合的函数,如果您只想保留匹配的值"January"
,则可以使用simple 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"
。
如果您希望所有月份都没有 "January"
,可以使用!=
或反转条件filterNot()
:
months.filter { it != "January" }
months.filterNot { it == "January" }
这些将为您提供包含"February"
和的列表"March"
。
请注意,与Java不同,在Kotlin中使用==
和!=
运算符实际上与equals
在对象上调用函数相同。如需更多信息,请参阅有关文档平等。
有关标准库中收集功能的完整列表,请参见API参考。
months.filter { it !in listOf("January", "March" }
。
您要过滤包含月份的字符串列表。
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()
method,则它将返回一个值,并且如果列表中有多个值,则将引发异常。
var filteredMonth : String = month.filter { s -> s == "January" }.single()
// result: "January"
我只是想分享一下,如果您有自定义列表,并检查它是否为空或空白,则可以单行在Kotlin中签入
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类的变量。