如何从 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?