You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何检查Map中存储的值是否为数组并获取该数组的首个元素

代码调整方案

修改后代码如下:

val map : MutableMap<String, Any>? = document.data?.toSortedMap(compareBy<String> { it.length }.thenBy { it })

map?.forEach { (key, value) ->
    // 校验是否为通用对象数组
    if (value is Array<*>) {
        if (value.isNotEmpty()) {
            val firstItem = value.first()
            Log.d("test", "键$key 对应数组的首个元素为:$firstItem")
        } else {
            Log.d("test", "键$key 对应数组为空,无有效首元素")
        }
    }
    // 若存储中存在IntArray、LongArray等基本类型数组,可参照下方示例补充对应判断逻辑
    else if (value is IntArray) {
        if (value.isNotEmpty()) {
            val firstItem = value.first()
            Log.d("test", "键$key 对应Int数组的首个元素为:$firstItem")
        }
    }
}

实现逻辑说明:

  • 遍历Map时解构出键、值两个变量,方便后续处理
  • 使用Kotlin is 关键字做类型校验,判断值是否为数组类型
  • 取首元素前先判断数组非空,避免出现下标越界异常

内容的提问来源于stack exchange,提问作者txshiro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 20:36:04