小编Ars*_*yan的帖子

如何从kotlin的列表中删除一些元素

我在如何删除与某些参数不匹配的元素方面遇到了问题。例如,我有两个数据类:第一个和第二个第一个包含第二个的属性,即城市、价格等:

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)
Run Code Online (Sandbox Code Playgroud)

Item 的第二个数据类:

data class Product(var title: String, var price: String, var photoId : String)
Run Code Online (Sandbox Code Playgroud)

我正在通过 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) }
Run Code Online (Sandbox Code Playgroud)

这是 JSON 文件:

[
    {
        "city": "New York",
        "title": "Banana", …
Run Code Online (Sandbox Code Playgroud)

java arrays json gson kotlin

5
推荐指数
2
解决办法
2万
查看次数

ArrayList.filter不起作用

所以,我有Android的这个代码:

parkingList.removeIf { parking-> parking.city != pr.city }
parkingList.removeIf { parking-> parking.price.toDouble() <= pr.priceFrom }
parkingList.removeIf { parking-> parking.price.toDouble() >= pr.priceTo }
parkingList.removeIf { parking-> parking.daysBusy.contains(daysSet.split("|").toString()) }
Run Code Online (Sandbox Code Playgroud)

这是我现在的代码.我不能使用任何其他东西,因为当我使用过滤器到我的arraylist parkingList时,它将无法正常工作.我不知道为什么.这就是我使用它的方式:

parkingList.filter { parking-> parking.city === pr.city }
parkingList.filter { parking-> parking.price.toDouble() >= pr.priceFrom }
parkingList.filter { parking-> parking.price.toDouble() <= pr.priceTo }
parkingList.filter { parking-> !parking.daysBusy.contains(daysSet.split("|").toString()) }
Run Code Online (Sandbox Code Playgroud)

但由于某种原因它不起作用.PS我只需要API19,所以,这就是为什么我必须只使用过滤器(或者没有?)

码:

val filteredList = parkingList.filter { parking-> parking.city === pr.city
        parking.price.toDouble() >= pr.priceFrom
        parking.price.toDouble() <= pr.priceTo
        !parking.daysBusy.contains(daysSet.split("|").toString())
    } as ArrayList

filteredList.forEach { println(it) } …
Run Code Online (Sandbox Code Playgroud)

java arrays android kotlin

4
推荐指数
1
解决办法
91
查看次数

标签 统计

arrays ×2

java ×2

kotlin ×2

android ×1

gson ×1

json ×1