Android 从kotlin中的映射获取值

Android 从kotlin中的映射获取值,android,kotlin,Android,Kotlin,我有一门课: Category(val name : String? = null, val products: Map<Product,Boolean> = mutableMapOf()) Category(val名称:String?=null,val产品:Map=mutableMapOf()) 该类用于地图中的活动: private var categoriesAndProducts = mutableMapOf<Category, Boolean>() pri

我有一门课:

Category(val name : String? = null, val products: Map<Product,Boolean> = mutableMapOf())
Category(val名称:String?=null,val产品:Map=mutableMapOf())
该类用于地图中的活动:

private var categoriesAndProducts = mutableMapOf<Category, Boolean>()
private var categoriesAndProducts=mutableMapOf()

我的问题是,当我有一个类别的名称时,我需要进入类别类内部,然后从外部获得类别的布尔值。问题是当我在里面的时候,我不知道如何得到这个布尔值。例如,如何返回此层次结构中的更高级别并获取该值。

如果我理解您的意思是正确的,您希望在
类别和产品中查找基于
类别的
类别。名称
。有了这个
类别
(这是关键),您就需要从
类别和产品
中获取它的
布尔值

您可以通过首先筛选与类别名称匹配的关键字来完成此操作:

val键:类别?=类别和产品。键。第一个或全部{
it.name==“someName”
}
categoriesAndProducts[key]//当key为null时返回null
您可以编写一个扩展函数,帮助您根据名称访问类别键:

funmap.findByName(名称:String):布尔?{
val key:Category?=keys.firstOrNull{it.name==name}
返回get(键)
}
categoriesAndProducts.findByName(“someName”)//返回布尔值

在Category类中将该布尔值作为参数不是一个选项?实际上,我想从第一个映射中获取布尔值:mutableMapOf(),但我知道的唯一一件事是Category类中的name,正如您编写Category.name时所知。我稍微更新了我的答案。这将为您提供
categoriesAndProducts
中给定名称(字符串)的值(布尔值)。谢谢!它正在工作:)