Kotlin如何基于Int数组过滤带有strength属性的Drink对象集合
实现方法
你只需要在filter的判断逻辑中,校验当前Drink的strength属性是否属于你从SharedPreferences读取到的筛选Int集合即可,Kotlin可以直接用in关键字简化判断:
// 该变量替换为你实际从SharedPreferences读取到的筛选值数组 val filteredStrengthArray = arrayListOf<Int>(2,3) val filteredDrinks = DrinkData.generateAllDrinks().sortedWith( compareBy<Drink> { it.theDrinkName.first().isDigit() } .thenBy { it.theDrinkName.lowercase() } // toLowerCase已在高版本Kotlin中废弃,推荐用lowercase替代 ).filter { // 仅保留strength在筛选数组中的数据 it.strength in filteredStrengthArray }
上述代码运行后得到的filteredDrinks就是符合筛选条件的结果,和你示例要求的rum、151、99三个对象完全匹配。
内容的提问来源于stack exchange,提问作者Joe
相关产品推荐
相关产品推荐

