我遇到了如何删除与某些参数不匹配的元素的问题。例如,我有两个数据类:First 和 Second 第一个包含第二个的属性,即城市、价格等:
data class Properties(val city: String, val day: Int, val month: Int, val yearProp: Int, val dayEnd: Int, val monthEnd: Int, val yearEndProp: Int, val priceFrom: Int, val priceTo: Int)
Item 的第二个数据类:
data class Product(var title: String, var price: String, var photoId : String)
我正在通过来自 json 的代码解析产品的数据:
val gson = GsonBuilder().setPrettyPrinting().create()
val inputStream : Reader = context.getResources().openRawResource(R.raw.products).reader()
var productList: ArrayList<Product> = gson.fromJson(inputStream, object : TypeToken<List<Product>>() {}.type)
productList.forEach { println(it) }
这是 JSON 文件:
[
{
"city": "New York",
"title": "Banana",
"price": "$1,99"
"photoId": "someurl"
},
{
"city": "New York",
"title": "Strawberry",
"price": "$1,99"
"photoId": "someurl"
},
{
"city": "Philadelphia",
"title": "Banana",
"price": "$4,99"
"photoId": "someurl"
}
]
所以,我想过滤一下。如果用户匹配“纽约”,则列表中必须只有带有“城市”:“纽约”的项目。是的,这只是一个例子,不要注意我在那里写的所有愚蠢的东西 :D
或者我应该在添加项目时过滤项目吗?但如果是这样,那么该怎么做呢?
最佳答案
这是一个从列表中删除具有特定条件的项目的示例。此示例从整数列表中删除偶数。
var myLists = mutableListOf(1,2,3,4,5,6,7,8,9)
myLists.removeAll{ it % 2 == 0 }
println(myLists)
打印:
[1, 3, 5, 7, 9]
关于java - 如何从kotlin中的列表中删除一些元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48946660/