如何从 Kotlin Android 中的 LinkedHashMap 手动获取第一和第二位置的对象?
Posted
技术标签:
【中文标题】如何从 Kotlin Android 中的 LinkedHashMap 手动获取第一和第二位置的对象?【英文标题】:How to get object from 1st and 2nd position manually from LinkedHashMap in Kotlin Android? 【发布时间】:2022-01-19 20:37:54 【问题描述】:查看这个 LinkedHashMap
var sizeMap: LinkedHashMap<String, ProductSize>? = null
所以,我从 API 存储这个 sizemap 值,但不知道如何检索它。我查了一下,地图大小是 2。
如果没有 for 循环,我想手动获取 sizeMap[0] 和 sizeMap[1] 并希望存储在 ProductSize 对象中。但做不到。
我在下面尝试过,但是 [0] 出现编译器错误
val sizeObj = it[0]
【问题讨论】:
【参考方案1】:LinkedHashMap
不是列表,它仍然是地图。你能做的是
sizeMap.values()[0]
【讨论】:
编译器错误出现在值上:val sizeObj: ProductSize = it.values()[0] ProductSize 是一个模型类,在地图中作为一个值出现【参考方案2】:首先,您的示例中的sizeMap
可以为空。在确定它不为空之前,你不能对它做任何事情。
其次,LinkedHashMap
保持元素的顺序,但这并不意味着它允许访问其第 N 个元素。我们仍然需要对其进行迭代以获取特定索引处的元素。
幸运的是,Kotlin 提供了许多实用程序,可以在不实际迭代源代码的情况下进行迭代。例如,我们可以 take 映射中的前两个值,如下所示:
if (sizeMap != null)
val (first, second) = sizeMap.values.take(2)
【讨论】:
以上是关于如何从 Kotlin Android 中的 LinkedHashMap 手动获取第一和第二位置的对象?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Kotlin 从 Android 中的片段访问另一个片段?
如何使用 Kotlin 从 android 中的资产中读取 json 文件?
如何将偏移量应用于 android (Kotlin) 中的 Contacts Provider 查询?
如何从 Kotlin Android 中的 LinkedHashMap 手动获取第一和第二位置的对象?
如何在 Android Studio 中使用 Kotlin 从 Firebase 中的数据库中获取特定值?
如何使用 Kotlin 在 android 中的 BottomNavigationView 上设置 OnNavigationItemListener?